Alexandra

Page 1

PRODUCTO I Y II ;

VISIÓN

La Carrera de Docencia en Informática de la Facultad de Ciencias Humanas y de la Educación de la Universidad Técnica de Ambato por sus niveles de excelencia se constituirá como un centro de formación superior con liderazgo y proyección nacional e internacional.

PROGRAMACION II

Página 1


PRODUCTO I Y II

MISIÓN Formar profesionales líderes competentes, con visión humanista y pensamiento crítico a través de la Docencia, la Investigación y la Vinculación, que apliquen, promuevan y difundan el conocimiento respondiendo a las necesidades del país.

PROGRAMACION II

Página 2


PRODUCTO I Y II

PERFIL DE COMPETENCIAS PROFESIONALES

• • • •

Realizar investigaciones en el área educativa. Mediador Pedagógico. Actuar según proyecto Ético de Vida. Desarrollar proyectos educativos alternativos que potencien el binomio didáctico escuela – trabajo. Establecer una comunicación asertiva con los actores del entorno educativo. Aplicar el pensamiento complejo en el contexto individual y colectivo con el fin de gestionar el talento humano, circunscrito en el aprender a desaprender, aprender a aprender y aprender a re aprender.

PROGRAMACION II

Página 3


PRODUCTO I Y II

CAMPO OCUPACIONAL

• •

• •

• • •

• •

Facilitador Profesional docente en el campo de la Informática y la Computación en el nivel párvulo, primario y medio tanto en el sector, público, privado y mixto. Facilitador en el área de Informática y Computación de profesores de educación General Básica y/o Bachillerato. Administrador de Laboratorios y Centros de Cómputo en Instituciones Educativas Educativas de nivel primario, básico o superior fiscales, fiscomicionales, privadas y en las diferentes empresas públicas o privadas. Administrador de redes en Instituciones Públicas, Privadas o Educativas. Director de proyectos de desarrollo de Software Educativo Educa y Aplicaciones Multimedia en Instituciones Educativas públicas y privadas. Diseñador de Sistemas Informáticos Educativos Basados en Multimedia. Planificador de la enseñanza en Instituciones Educativas públicas, privadas, primarias, secundarias o superior. super Diseñador de Sistemas Informáticos y Multimedios aplicados a la Educación presencial, semipresencial y a distancia en Instituciones Educativas de nivel básico o medio. Evaluador de software Educativo. Restaurador de pcs y demás componentes.

PROGRAMACION II

Página 4


PRODUCTO I Y II

ÍNDICE GENERAL

ELEMENTO I....................................................................... 7 ELEMENTOS TEORICOS .................................................. 7 INTRODUCION AL LENGUAJE DE PROGRACION EXTRUCTURADO ............................................................ 7 LENGUAJE “C” ................................................................. 7 VECTORES .................................................................... 10 MATRICES ..................................................................... 15 TALLERES EN CLASES Nº-1 ........................................ 20 ELEMENTO II.................................................................... 38 Vectores y Matrices ........................................................ 38 TALLERES EN CLASES Nº-2 ......................................... 39

PROGRAMACION II

Página 5


PRODUCTO I Y II

PROGRAMACION II

Pรกgina 6


PRODUCTO I Y II

ELEMENTO I ELEMENTOS TEORICOS INTRODUCION AL LENGUAJE DE PROGRACION EXTRUCTURADO

El lenguaje estructurado es un lenguaje natural limitado en palabras y construcciones, lo que le da más más precisión y claridad, evitando ambigüedades (el lenguaje natural humano carece de precisión y es muy ambiguo). El lenguaje estructurado puede utilizarse para especificar un algoritmo. Luego, para que la computadora pueda procesarlo, deberá transformarse o "traducirse" a un lenguaje de programación específico. El lenguaje estructurado es una herramienta que puede utilizarse en la especificación de procesos, en el desarrollo de sistemas. Se refiere a un conjunto de técnicas que han ido evolucionando. Estas técnicas aumentan considerablemente la productividad del programa reduciendo el tiempo requerido para escribir, verificar, depurar y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control que minimizan la complejidad de los problemas y que reducen los errores. Ésta incorpora entre otros elementos: el diseño descendente, recursos abstractos y estructuras básicas. La programación estructurada es una forma de escribir programación de computadora de forma clara, para ello utiliza únicamente tres estructuras: secuencial, selectiva e iterativa; siendo innecesario y no permitiéndose el uso de la instrucción o instrucciones de transferencia incondicional (GOTO). Programación Estructurada es una técnica en la cual la estructura de un programa, esto es, la interpelación de sus partes realiza tan claramente cómo es posible mediante el uso de tres estructuras lógicas de control: a.

Secuencia: Sucesión simple de dos o más operaciones.

b.

Selección: bifurcación condicional de una o más operaciones.

c. Interacción: Repetición de una operación mientras se cumple una condición.

LENGUAJE “C”

PROGRAMACION II

Página 7


PRODUCTO I Y II El lenguaje C es de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje. Este lenguaje ha sido estrechamente ligado al sistema operativoUNIX, puesto que fueron desarrollados conjuntamente. Sin embargo, este lenguaje no está ligado a ningún sistema operativo ni a ninguna máquina concreta. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se puede desarrollar cualquier tipo de aplicación. C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoría de computadoras actuales, como son los caracteres, números y direcciones. Estos tipos de datos pueden ser manipulados por las operaciones aritméticas que proporcionan las computadoras. No proporciona mecanismos para tratar tipos de datos que no sean los básicos, debiendo ser el programador el que los desarrolle. Esto permite que el código generado sea muy eficiente y de ahí el éxito que ha tenido como lenguaje de desarrollo de sistemas. No proporciona otros mecanismos de almacenamiento de datos que no sea el estático y no proporciona mecanismos de entrada ni salida. Ello permite que el lenguaje sea reducido y los compiladores de fácil implementación en distintos sistemas. Por contra, estas carencias se compensan mediante la inclusión de funciones de librería para realizar todas estas tareas, que normalmente dependen del sistema operativo. Uno de los objetivos de diseño del lenguaje C es que sólo sean necesarias unas pocas instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, sin que haga falta un soporte intenso en tiempo de ejecución. Es muy posible escribir C a bajo nivel de abstracción; de hecho, C se usó como intermediario entre diferentes lenguajes. En parte a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en un amplio abanico de plataformas (más que cualquier otro lenguaje). Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Un programa escrito cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos computadores. C se desarrolló originalmente (conjuntamente con el sistema operativo Unix, con el que ha estado asociado mucho tiempo) por programadores para programadores. Sin embargo, ha alcanzado una popularidad enorme, y se ha usado en contextos muy alejados de la programación de software de sistema, para la que se diseñó originalmente.

PROGRAMACION II

Página 8


PRODUCTO I Y II Como se mencionó anteriormente, es necesario conocer las entradas y las salidas del problema para poder resolverlo. Para que C reciba estos datos utilizamos las funciones de biblioteca scanf para la entrada y printf para la salida. Su sintaxis es la siguiente: //Lee el valor y lo guarda en una variable scanf ("%d", &variable); //Imprime en pantalla el texto y el valor printf ("El valor es %d", variable); Ejemplo: #include <stdio.h> #include <conio.h> #include <math.h> void main() { int r, a, p; printf ("Programa que calcula el área y perímetro de un circulo"); printf ("\nIntroduce el radio: "); scanf ("%d", &r); a = M_PI * pow(r,2); p = M_PI * (r+r); printf ("\nEl área es: %d", a); printf ("\nEl perímetro es: %d", p); getch(); } En ocasiones, queremos que el programa reciba una entrada de tipo carácter. Para lograr esto podemos declarar una variable de tipo carácter y guardarla en getch() o getche(). La diferencia entre ellos es que getche() muestra en pantalla el carácter introducido, mientras que getch () lo mantiene oculto. Su sintaxis es la siguiente: charopc; opc=getch(); opc=getche();

PROGRAMACION II

Página 9


PRODUCTO I Y II VECTORES En programación, una matriz o vector (llamados en inglésarrayas arrayas) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todas las matrices son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), ), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres dimensiones. Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista,, ya que esta estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa.

Todo vector se compone de un determinado número de elementos. Cada elemento es referenciado por la posición que ocupa dentro del vector. Dichas posiciones son llamadas índice y siempre son correlativos. Existen tres formas de indexar los elementos de una matriz: •

Indexación base-cero base (0): En este modo el primer elemento del vector será la componente cero ('0') del mismo, es decir, tendrá el índice '0'. En consecuencia, si el vector tiene 'n' componentes la última tendrá como índice el valor 'n--1'. El lenguaje C es un ejemplo típico que utiliza este modo de indexación.

Indexación base-uno base (1): En esta forma de indexación, el primer elemento de la matriz tiene el índice '1' y el último tiene el índice 'n' (para una matriz de 'n' componentes).

Indexación base-n base (n): Este es un modo versátil de indexación en la que el índice del primer elemento puede ser elegido libremente, en algunos lenguajes de programación se permite que los índices puedan ser negativos e incluso de cualquier tipo escalar (también cadenas de caracteres). Notación La representación de un elemento en un vector se suele hacer mediante el identificador del vector seguido del índice entre corchetes, paréntesis o llaves:

• •

PROGRAMACION II

Página 10


PRODUCTO I Y II •

Aunque muchas veces en pseudocódigo y en libros de matemática se representan como letras acompañadas de un subíndice numérico que indica la posición a la que se quiere quiere acceder. Por ejemplo, para un vector "A":

(vector unidimensional)

Ejemplos •

Declaración en C//C++ de un vector estático.

intmain(void) { // v[5] es un vector de 5 componentes int i, v[5];// for(i=0;i<5;i++) { v[i]=0;// // Asignamos un valor printf("%d\n", v[i]); printf("\n");// // Crea una nueva línea } return0 } •

Declaración en C/C++ C de un vector estático utilizando aritmética de punteros.

Siendo el identificador del vector, un puntero constante que contiene la dirección del comienzo del vector (vector ( [0], primer elemento) Int main(void) { int i, v[5];// // v[5] es un vector de 5 componentes compon for(i=0; i<5; i++) { *(v + i)=0;// // Asignamos un valor en la dirección (vector + ((índice * sizeof (int) cantidad de bytes de desplazamiento desde la base.) printf("%d\n",*(vector +i)) )); printf("\n");// // Crea una nueva línea } return0 } •

Declaración en C++ de un vector de STL:

#include<vector>

PROGRAMACION II

Página 11


PRODUCTO I Y II vector<int> v;// Si no se especifica el tamaño inicial es 0 for(int i=0;i<5;i++) { v.push_back(2*i);// inserta un elemento al final del vector } •

Resultado: 0 1 2 3 4 0 2 4 6 8

El resultado de los dos ejemplos es el mismo vector

Ordenación por intercambio directo (método de la burbuja) La Ordenación de burbuja (BubbleSort en inglés) es un sencillo algoritmo de ordenamiento. Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente, intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista los elementos durante los intercambios, como si fueran pequeñas "burbujas". También es conocido como el método del intercambio directo. Dado que solo usa comparaciones para operar elementos, se lo considera un algoritmo de comparación, siendo el más sencillo de implementar. Este es el siguiente paso del método de burbuja.-Necesitamos dos for, un if para ordenar si queremos ascendente o descendente este es la ordenación. inti,j; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(vector[i]< vector[j]) { aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; } } }

PROGRAMACION II

Página 12


PRODUCTO I Y II Manejo de Cadenas de Caracteres Una cadena suele ser representada entre comillas dobles superiores ("palabra"), m i e n t r a s que un carácter de esa cadena (un char en inglé s) suele s e r representado entre comillas simples ('p'). Ejemplo, en C: Char c = 'a'; Charstr [5] = "hola”; Ejemplo: #include<stdio.h> #include<conio.h> #include<string.h> char vector1[20],vector2[20],h; intlimite,i,op,fila; void main() { do { clrscr(); fila=10; h=0; textcolor(2); gotoxy(25,3); cprintf("***VISUALIZA EL NOMBRE***"); gotoxy(25,8);cprintf("VOCALES MAYUSCULAS Y MINUSCULAS"); flushall(); for(i=1;i<=80;i++) { textcolor(3); gotoxy(i,1);cprintf("$"); gotoxy(i,24); cprintf("$"); }

PROGRAMACION II

Página 13


PRODUCTO I Y II for(i=1;i<=24;i++) { gotoxy(1,i);cprintf("/"); gotoxy(80,i); cprintf("/"); } textcolor(4); gotoxy(10,6);cprintf("Ingrese la Cadena ==>");gets(vector1); limite=strlen(vector1); for(i=0;i<limite;i++) { if (vector1[i]=='a' || vector1[i]=='A') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='e' || vector1[i]=='E') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='i' || vector1[i]=='I') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='o' || vector1[i]=='O') { PROGRAMACION II

Pรกgina 14


PRODUCTO I Y II vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='u' || vector1[i]=='U') { vector2[h]=vector1[i]; h=h+1; } } fila=10; for(i=0;i<h;i++) { textcolor(i+2); gotoxy(40,fila); cprintf("%c",vector2[i]); fila=fila+1; }

gotoxy(10,23);printf("Ingrese (

1) para Continuar o (0) para Salir==>>");scanf("%d",&op); }while(op==1); getch(); }

MATRICES Desde el punto de vista del programa, una matriz (array o vector) es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz [1]. Desde el punto de vista lógico podemos considerarlas como un conjunto de elementos ordenados en fila. Así pues, en principio todas las matrices son de una dimensión, la dimensión principal, pero veremos que los elementos de esta fila pueden ser a su vez matrices (un PROGRAMACION II

Página 15


PRODUCTO I Y II proceso que puede ser recursivo), lo que nos permite hablar de la existencia de matrices multi-dimensionales, aunque las más fáciles de "ver" o imaginar son las de dos y tres dimensiones. También se pueden inicializar: int Mat [3] [4] = { 0, 1 , 2 , 4, 5 , 6 , 7 , 8 , 9 , 5 , 8 }; y se representa: 0 0 1 2

0

1 1

4 8

2

3 2

3

5

6

7

9

5

8

Una matriz es un vector de vectores o un también llamado array bidimensional. La manera de declarar una matriz es c++ es similar a un vector: int es el tipo de dato, matriz es el nombre del todo el conjunto de datos y debo de especificar el numero de filas y columnas. Las matrices también pueden ser de distintos tipos de datos como char, float, double,etc. Las matrices en c++ se almacenan al igual que los vectores en posiciones consecutivas de memoria. Usualmente uno se hace la idea que una matriz es como un tablero. Pero internamente el manejo es como su definición lo indica, un vector de vectores, es decir, los vectores están uno detrásdel otro juntos. La forma de acceder a los elementos de la matriz es utilizando su nombre e indicando los 2 subíndices que van en los corchetes. Si Coloco int matriz[2][3]=10; //estoy asignando al cuarto elemento de la tercera fila el valor 10. No olvidar que tanto filas como columnas se enumeran a partir de 0. Bueno y para recorrer una matriz podemos usar igualmente un bucle. En este caso 2 for

Ejemplo para ingresar y visualizar datos de una matriz # include<stdio.h> # include<conio.h> intcot,fact,i,j,op,col,fila,limt,matriz[10][10]; void ingresar (intlimite, int factor) { fila=10; col=5; cot=0; gotoxy(8,8);printf("MATRIZ DE INGRESO"); for(i=1;i<=limite;i++) PROGRAMACION II

Aquí ingresamos la matriz con 2 for.

Página 16


PRODUCTO I Y II { for(j=1;j<=limite;j++) { cot=cot+1; matriz[i][j]=factor*cot; gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+4; } fila=fila+1; col=5; } } void visualizar (int limite) { fila=10; col=38; gotoxy(35,8);printf("MATRIZ DE SALIDA"); for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]);

AquĂ­ visualizamos la matriz en la cual utilizamos 2 for.

col=col+4; } fila=fila+1; col=38; } } getch(); }

Ejemplo para Ingresar y Ordenar datos de una matriz e imprimir #include<conio.h> #include<stdio.h>

Declaraciones Generales

intmatriz[10][10],i,j,limite,fila,col,op,aux,h,x; voidborde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) PROGRAMACION II

PĂĄgina 17


PRODUCTO I Y II { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } voidingresar (intlimite) { fila=10; col=10; gotoxy(8,8);printf("²MATRIZ DE INGRESO²"); for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { do { gotoxy(col,fila);printf(" "); gotoxy(col,fila);scanf("%d",&matriz[i][j]); } while(matriz[i][j]<7 || matriz[i][j]>23); col=col+5; } fila=fila+1; col=10; } } void principal(intlimite) { col=30; fila=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(i==j) { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; fila=fila+1; } } } } voidsecundaria(intlimite) { fila=10; j=limite; col=col-5; for(i=1;i<=limite;i++) { PROGRAMACION II

Ingresar datos en la matriz aquí utilizamos 2 for, 1 do, 1 while este es para validar datos del vector

Página 18


PRODUCTO I Y II gotoxy(col,fila);printf("%d",matriz[i][j]); j=j-1; col=col-5; fila=fila+1; } }

voidordenaciรณn (intlimite) { for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { for(h=1;h<=limite;h++) { for(x=1;x<=limite;x++) { if(matriz[i][j]<matriz[h][x]) { aux=matriz[i][j]; matriz[i][j]=matriz[h][x]; matriz[h][x]=aux; } } } }

Ordenar Datos a una Matriz en la cual tenemos 4 for, cada uno con su respectivo contador.

} } voidimpresion(intlimite) { col=47; fila=9; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; } col=47; fila=fila+3; } }

Imprimir Datos de una Matriz en este tenemos 2 for y se podrรก visualizar en pantalla.

void main() { PROGRAMACION II

Pรกgina 19


PRODUCTO I Y II clrscr(); do { borde(); gotoxy(10,5);printf("INGRESE EL LIMITE===> ");scanf(" %d",&limite); ingresar(limite); principal(limite); secundaria(limite); ordenacion(limite); impresion(limite); gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² ");scanf("%d",&op); } while(op==1); getch(); }

=

TALLERES EN CLASES Nº-1 EJERCICIO ENUNCIADO BUSQUE TODOS LOS DATOS PARES DEL VECTOR Y GUÁRDELOS EN UN NUEVO VECTOR UTILIZANDO FUNCIONES. ANÁLISIS En este programa voy a detallar como se hace el programa es decir que como en todo programa se pode las librerías generales como el studio y el conio, int, en este también debemos poner los datos del borde en el cual se utiliza dos for los for son estructuras de control en la que se puede indicar el número mínimo de interrelaciones que debe cumplir el lazo también debemos poner el void ingreso, pares, resultado, maid en el cual ya va la terminación del programa y los mensajes que se debe visualizar. PROGRAMA DOCUMENTADO #include<stdio.h> #include<conio.h> int vector[10],vector1[10],i,limi,fi,h,par,op;

Esto es la cabecera es decir aquí se encuentra las librerías principales y la variable int.

voidborde() { PROGRAMACION II

Página 20


PRODUCTO I Y II for(i=1;i<=80;i++) { textcolor(3); gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); }

Aquí está el proceso para realizar el borde que esta con dos for y cada uno con su respectiva impresión

for(i=1;i<=24;i++) { gotoxy(1,i);printf("@"); gotoxy(80,i);printf("@"); } } voidIngresar (int limit) { fi=10; for(i=1;i<=limit;i++) {

Este es el ingreso del programa donde solo ingresamos un for siempre con sus respectivas llaves

gotoxy(10,fi);scanf("%d",&vector[i]); fi=fi+1; } } void pares(intlimite) { h=1; for(i=1;i<=limite;i++) {

Aquí está el ingreso de pares en el vector utilizamos un for un if para decir si es par que imprima caso contrario no

par=i%2; PROGRAMACION II

Página 21


PRODUCTO I Y II if(par==1 ) { vector1[h]=vector[i]; h=h+1; } } } void result() { fi=10; for(i=1;i<h;i++) {

Aquí se van imprimir o visualizar el resultado que queremos en el cual utilizamos solo un for.

gotoxy(20,fi);printf("%d",vector1[i]); fi=fi+1; } } void main () { do { clrscr(); borde(); gotoxy(10,3);printf("DATOS PARES DE UN VECTOR"); gotoxy(15,5); printf("Ingrse el limte==>:"); scanf("%d",&limi); gotoxy(4,7); printf(" V INGRESO");

Aquí está ya solo los mensajes que queremos que salga en el corrido incluyendo el si desea salir y el continuar

gotoxy(18,7);printf("V PARES"); PROGRAMACION II

Página 22


PRODUCTO I Y II Ingresar(limi); pares(limi);

Ingreso de las funciones para que corra el programa

result(); gotoxy(3,22); printf("0 para CONTINUAR===");scanf("%d",&op);

FINALIZAR

o

1

para

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

Aquí se puede visualizar ya el programa terminado como ustedes pueden ver se imprime solo el dato par.

PROGRAMACION II

Página 23


PRODUCTO I Y II EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA UTILIZANDO FUNCIONES QUE ME PERMITAN GENERAR EN N ELEMENTOS DE CUALQUIER FACTOR INGERSADO DESDE TECLADO, RECORER EL VECTOR Y ENCUENTRE TODAS LAS POSICIONES IMPARES DEL VECTOR Y GUARDE LOS DATOS EN EL MISMO VECTOR, A CONTINUACION DE ESTE VECTOR RESULTANTE TODAS LAS POSICIONES PARES DEL VECTOR, VISUALISE EL VECTOR RESULTANTE. ANÁLISIS En este programa hicimos lo siguiente es decir sacamos los datos pares e impares de un vector utilizando factores en este programa pondremos solamente el límite y el factor para que los datos solo se visualicen en pantalla es decir sin poder desde teclado en el cuan aremos el proceso de generar, el de pares e impares, y lo que se visualizara en pantalla una vez ya terminado el programa. PROGRAMA DOCUMENTADO #include<stdio.h> #include<conio.h> int vector[10],vector1[10],i,limi,fi,op,h,fac,l,impar,par;

DECLARACION DE VARIABLES Aquí se declara todas las variables q se utiliza para el programa.

voidborde() { for(i=1;i<=80;i++) Codificación del borde con su inicialización y su finalización

{ textcolor(5); gotoxy(i,1);cprintf("@"); gotoxy(i,24);cprintf("@"); }

Aquí se utiliza el FOR para realizar las filas del borde con su respectiva impresión

for(i=1;i<=24;i++) { gotoxy(1,i);cprintf("@"); gotoxy(80,i);cprintf("@"); PROGRAMACION II

Página 24


PRODUCTO I Y II } } Void generar (intlimi,intfac) { h=1; fi=10;

Aquí generamos el vector con 2 for, con sus respectivas columnas y filas

for(i=1;i<=limi;i++) { vector[h]=fac*i; h=h+1; } fi=10; for(i=1;i<h;i++) { gotoxy(20,fi); printf("%d",vector[i]); fi=fi+1; } } void impares(int limit) { l=1; for(i=1;i<=limit;i++) { impar=i%2;

Aquí está el proceso para que nos salga los valores impares en el cual utilizamos 2 for, 1 if en el cual ponemos que sea =1

if(impar==1) { vector1[l]=vector[i]; PROGRAMACION II

Página 25


PRODUCTO I Y II l=l+1; } } fi=10; for(i=1;i<l;i++) { gotoxy(30,fi);printf("%d",vector1[i]); fi=fi+1; } } void pares(intlimite) { l=1; fi=10; for(i=1;i<=limite;i++) { par=i%2; if(par==0) {

Aquí está el ingreso de pares en el vector utilizamos un for un if que es = 0 para decir si es par también están las columnas y las filas

vector1[l]=vector[i]; l=l+1; } } fi=10; for(i=1;i<l;i++) { gotoxy(40,fi);printf("%d",vector1[i]); PROGRAMACION II

Página 26


PRODUCTO I Y II fi=fi+1; } } void main() {

En esta parte se visualiza el contenido que necesita para imprimir en la pantalla

do { clrscr(); borde(); textcolor(3);

gotoxy(30,3);cprintf("DATOS PARES E MPARES DE UN VECTOR"); gotoxy(18,5);cprintf("Ingrese el limite ===>:"); scanf("%d",&limi); gotoxy(18,7);cprintf("Ingrese el factor===>:"); scanf("%d",&fac); gotoxy(15,9); cprintf("V.INGRESO

V.IMPAR V.PAR");

generar(limi,fac); Ingreso de las funciones para que corra el programa

impares(limi); pares(limi); gotoxy(3,22);printf("0 scanf("%d",&op);

para

FINALIZAR

o

1

para

CONTINUAR===

");

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

PROGRAMACION II

Pรกgina 27


PRODUCTO I Y II CODIFICADO

Aquí ya tenemos el codificado en el cual pueden visualizar ya terminado el programa y lo que queríamos es decir el factor y los pares e impares del vector.

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA UTILIZANDO FUNCIONES QUE ME PERMITA INGRESAR N ELEMENTOS EN UN VECTOR ENTRE 3-20, ORDENE EL VECTOR EN FORMA ACENDENTE Y VISUALIZE LOS DATOS RESULTANTES DE DICHO VECTOR. ANÁLISIS En este programa vamos a utilizar 1 ingreso que se utiliza el FOR, un do y un while para validar datos del vector también el ordenamiento que es el que ordena de mayor a menor o viceversa en este vamos a ordenar con 3 for, 1 if, y las columnas y filas si ponemos < se ordena ascendente. PROGRAMA DOCUMENTADO #include<conio.h> #include<stdio.h> int vector[10],limi,i,j,aux,op,fi;

DECLARACION DE VARIABLES Aquí se declara todas las variables q se utiliza para el programa.

voidborde()

PROGRAMACION II

Página 28


PRODUCTO I Y II { for(i=1;i<=80;i++) {gotoxy(i,1);printf("#"); gotoxy(i,24);printf("#"); }

Codificación del borde con su inicialización y su finalización

for(i=1;i<=24;i++) { gotoxy(1,i);printf("#");

Aquí se utiliza el FOR para realizar las filas del borde con su respectiva impresión

gotoxy(80,i);printf("#"); } } Void ingre(intlimite) { fi=10; for(i=1;i<=limite;i++) { do { gotoxy(10,fi); printf(" "); gotoxy(10,fi);scanf("%d",&vector[i]);

Aquí se utiliza el FOR, un do y un while para validar datos del vector ya que estamos ingresando

} while(vector[i]<3|| vector[i]>20); fi=fi+1; } } void orden(intlimite) { for(i=1;i<=limite;i++) PROGRAMACION II

Página 29


PRODUCTO I Y II { for(j=1;j<=limite;j++) { if(vector[i]<vector[j]) {

Aquí vamos a ordenar con 3 for, 1 if, y las columnas y filas si ponemos < se ordena ascendente.

aux=vector[i]; vector[i]=vector[j]; vector[j]=aux; } } } fi=10; for(i=1;i<=limite;i++) { gotoxy(20,fi);printf("%d",vector[i]); fi=fi+1; } } void main() { do { clrscr();

En esta parte se visualiza el contenido que necesita para imprimir en la pantalla

borde(); gotoxy(10,3);printf("ORDENAMIENTO DE UN VECTOR"); gotoxy(15,5);printf("Ingrese el limite===>:");scanf("%d",&limi); gotoxy(6,7); printf("V.INGRESO V.ORDEN"); ingre(limi); orden(limi);

Ingreso de las funciones para que corra el programa

gotoxy(3,23);printf("1 para FINALIZAR");scanf("%d",&op);

CONTINUAR

o

0

para

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

PROGRAMACION II

Página 30


PRODUCTO I Y II } CODIFICADO

En este programa pueden visualizar los datos ya ordenados nosotros solo ingresamos el límite y el programa se genera solo.

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA QUE ME PERMITA INGRESAR N ELEMENTOS EN UN VECTOR ENTRE 7-33, RECORRA EL VECTOR Y ENCUENTRE TODOS LOS DATOS IMPARES DEL VECTOR GUARDELOS EN UN NUEVO VECTOR Y PRESENTELOS EN FORMA ORDENADA, RECORRE EL MISMO VECTOR DE ORIGEN Y ENCUENTRE TODOS LOS DATOS PARES DEL VECTOR, ASIGNANDOLOS A UN NUEVO VECTOR Y PRESENTE SUS DATOS ORDENADOS EN FORMA DESENDENTE, EL PROCESO SE REPITE N VECES. ANÁLISIS En este programa utilizamos un proceso de ingreso, los de pares e impares, y el ordenamiento hay mismo en la cual esta detallado continuación cada uno los cuales se muestran en el programa ya terminado. PROGRAMA DOCUMENTADO #include<stdio.h> #include<conio.h> PROGRAMACION II

DECLARACION DE VARIABLES Aquí se declara todas las variables q se utiliza para el programa. Página 31


PRODUCTO I Y II int vector[10],vector1[10],vector2[10],fi,op,limi,i,j,h,l,par,impar,aux,aux1; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("&");

Codificación del borde con su inicialización y su finalización

gotoxy(i,24);printf("&"); } for(i=1;i<=24;i++)

Aquí se utiliza el FOR para realizar las filas del borde con su respectiva impresión

{ gotoxy(1,i);printf("&"); gotoxy(80,i);printf("&"); } } Void ingresar (intlimite) { fi=10; for(i=1;i<=limite;i++) { do {

Aquí se utiliza el FOR, un do y un while para validar datos del vector ya que estamos ingresando

gotoxy(10,fi);printf(" "); gotoxy(10,fi);scanf("%d",&vector[i]); } while(vector[i]<=7 || vector[i]>=33); fi=fi+1; } PROGRAMACION II

Página 32


PRODUCTO I Y II } void pares(intlimite) { h=1; for(i=1;i<=limite;i++) { par=vector[i]%2; if(par==0) { vector1[h]=vector[i]; h=h+1; } } fi=10; for(i=1;i<h;i++) { gotoxy(20,fi);printf("%d",vector1[i]); fi=fi+1; } for(i=1;i<h;i++) {

Aquí en este proceso de pares utilizamos 2 for y un if para decir si es par o no también visualizamos las filas y las columnas y aquí mismo el proceso de ordenamiento que es el de 3 for y así mismo un if para ordenar ascendente o descendente.

for(j=1;j<h;j++) { if(vector1[i]>vector1[j]) { aux=vector1[i]; vector1[i]=vector1[j]; PROGRAMACION II

Página 33


PRODUCTO I Y II vector1[j]=aux; } } } fi=10; for(i=1;i<h;i++) { gotoxy(30,fi);printf("%d",vector1[i]); fi=fi+1; } } Void impares(intlimite) { l=1; for(i=1;i<=limite;i++) { impar=vector[i]%2; if(impar==1) { vector2[l]=vector[i]; l=l+1; } }

Aquí en este proceso de impares utilizamos 2 for y un if para decir si es impar o no también visualizamos las filas y las columnas y aquí mismo el proceso de ordenamiento que es el de 3 for y así mismo un if para ordenar ascendente o descendente.

fi=10; for(i=1;i<l;i++) { gotoxy(50,fi);printf("%d",vector2[i]); PROGRAMACION II

Página 34


PRODUCTO I Y II fi=fi+1; } for(i=1;i<l;i++) { for(j=1;j<l;j++) { if(vector2[i]>vector2[j]) { aux1=vector2[i]; vector2[i]=vector2[j]; vector2[j]=aux1; } } } fi=10; for(i=1;i<l;i++) { gotoxy(65,fi);printf("%d",vector2[i]); fi=fi+1; } } void main() { do { clrscr(); borde(); PROGRAMACION II

Pรกgina 35


PRODUCTO I Y II gotoxy(10,3); printf("ORDENAMIENTO DE UN VECTOR"); gotoxy(7,8); printf("INGRESO"); gotoxy(17,8); printf("PARES"); gotoxy(27,8); printf("ORDEN PARES");

En esta parte se visualiza el contenido que necesita para imprimir en la pantalla

gotoxy(47,8); printf("IMPARES"); gotoxy(57,8); printf("ORDEN IMPARES"); gotoxy(15,5); printf("Ingrese el limite===:"); scanf("%d",&limi); ingresar(limi); pares(limi); impares(limi);

Ingreso de las funciones para que corra el programa

//ascen(limi); //descen(limi); gotoxy(3,22);printf("1 para CONTINUAR o 0 FINALIZAR");scanf("%d",&op); } while(op==1); getch(); } CODIFICADO

PROGRAMACION II

Pรกgina 36


PRODUCTO I Y II

En este programa podemos visualizar los valores pares e impares del vector y ordenados los pares e impares descendentemente y los pares en un vector y los impares en un nuevo vector.

PROGRAMACION II

Pรกgina 37


PRODUCTO I Y II

ELEMENTO II Vectores y Matrices MATRIZ En programación,, una matriz (llamados en inglés arrays)) es una zona de almacenamiento continuo, que contiene una serie de elementos del mismo tipo, los elementos de la matriz. Desde el punto de vista lógico una matriz se puede ver como un conjunto de elementos ordenados en fila (o filas y columnas si tuviera dos dimensiones). En principio, se puede considerar que todas las matrices son de una dimensión, la dimensión principal, pero los elementos de dicha fila pueden ser a su vez matrices (un proceso que puede ser recursivo), ), lo que nos permite hablar de la existencia de matrices multidimensionales, aunque las más fáciles de imaginar son los de una, dos y tres dimensiones. Estas estructuras de datos son adecuadas para situaciones en las que el acceso a los datos atos se realice de forma aleatoria e impredecible. Por el contrario, si los elementos pueden estar ordenados y se va a utilizar acceso secuencial sería más adecuado utilizar una lista,, ya que esta estructura puede cambiar de tamaño fácilmente durante la ejecución de un programa.

VECTORES Un vector, en programación, programación, es un arreglo, generalmente asociados a los arreglos unidimensionales. Ver: arreglo.. Es una zona de almacenamiento contiguo, que contiene una serie de elementos del mismo tipo y se distinguen entre síí por un índice. Vector también es la clase de la librería estándar de C++, que funciona como arreglo dinámico. El vector es una de las múltiples estructuras llamadas contenedores (otras son los conjuntos, mapas y listas). Es implementada como una plantilla plantilla de clase y puede ser iniciada como vector de números enteros, vector de cadenas, vector de instancias de una clase definida por el usuario,, etc.

PROGRAMACION II

Página 38


PRODUCTO I Y II

TALLER EN CLASES Nº-2

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA UTILIZANDO FUNCIONES QUE ME PERMITA INGRESAR UNA CADENA DE CARACTERES, DE CORRER DICHA CADENA Y ENCONTRAR TODOS AQUELLOS CARACTERES QUE SEAN IGUALES A LAS VOCALES MAYUSCULAS O MISNUSCULAS Y GUARDELOS EN UN NUEVO VECTOR VISUALISE EL VECTOR RESULTANTE, EL PROCESO SE REPITE N VECES. ANALISIS En este programa queremos sacar solo vocales ya sean minúsculas o mayúsculas haciendo el siguiente procedimiento a este programa debemos poder otra librería en este caso el string.h que es para caracteres y la variable char utilizamos un for y 5 if este es para hacer la comparación entre a minúscula y a mayúscula depende a lo que es que se imprima y a continuación podrán ver el programa ya terminado. PROGRAMA DOCUMENTADO #include<stdio.h> #include<conio.h> #include<string.h> char vector1[20],vector2[20],h;

Aquí estan las librerías generales y las variables que es en este caso char ya que este se utiliza para caracteres

int limite,i,op,fila; void main() { do { clrscr(); fila=10; h=0;

En esta parte se visualiza el contenido que necesita para imprimir en la pantalla

textcolor(2);

PROGRAMACION II

Página 39


PRODUCTO I Y II gotoxy(25,3); cprintf("***VISUALIZA EL NOMBRE***"); gotoxy(25,8);cprintf("VOCALES MAYUSCULAS Y MINUSCULAS"); flushall(); for(i=1;i<=80;i++)

Codificación del borde con su inicialización y su

{ textcolor(3); gotoxy(i,1);cprintf("$"); gotoxy(i,24); cprintf("$"); }

Aquí se utiliza el FOR para realizar las filas del borde con su respectiva impresión

for(i=1;i<=24;i++) { gotoxy(1,i);cprintf("/"); gotoxy(80,i); cprintf("/"); } textcolor(4); gotoxy(10,6);cprintf("Ingrese la Cadena ==>");gets(vector1); limite=strlen(vector1); for(i=0;i<limite;i++) { if (vector1[i]=='a' || vector1[i]=='A') { vector2[h]=vector1[i]; h=h+1;

Aquí está ingresando para que se visualice las vocales en las cuales utilizamos 1 for, 5 if cada uno para hacer la comparación

} if (vector1[i]=='e' || vector1[i]=='E') { vector2[h]=vector1[i]; PROGRAMACION II

Página 40


PRODUCTO I Y II h=h+1; } if (vector1[i]=='i' || vector1[i]=='I') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='o' || vector1[i]=='O') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='u' || vector1[i]=='U') { vector2[h]=vector1[i]; h=h+1; } }

fila=10; for(i=0;i<h;i++) { textcolor(i+2);

Aquí está ya la terminación del programa donde esta un for y las columnas y las filas y un while y do para que podremos continuar o salir.

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

PROGRAMACION II

Página 41


PRODUCTO I Y II } gotoxy(10,23);printf("Ingrese Salir==>>");scanf("%d",&op);

(1)

para

Continuar

o

(0)

para

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

En este programa como podemos ver solamente se visualiza las vocales mayúsculas y minúsculas ya terminado y corrido.

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA UTILIZANDO FUNCIONES Y MENU DE OPERACIONES QUE ME PERMITA OPTENER LAS CUATRO OPERACIONES VASICAS ENTRE DOS VECTORES CON DATOS COMPRENDIDOS ENTRE 6 Y 23.

PROGRAMACION II

Página 42


PRODUCTO I Y II ANALISIS En este programa queremos sacar solo vocales ya sean minúsculas o mayúsculas haciendo el siguiente procedimiento a este programa debemos poder otra librería en este caso el string.h que es para caracteres y la variable char utilizamos un for y 5 if este es para hacer la comparación entre a minúscula y a mayúscula depende a lo que es que se imprima y a continuación podrán ver el programa ya terminado. PROGRAMA DOCUMENTADO

#include<conio.h> Aquí estan las librerías generales y la variable

#include<stdio.h> int valor1,valor2, suma, resta,v[20],fila, multiplicacion,op,i,op1; float dividir; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++)

Aquí se utiliza el FOR para realizar las filas del borde con su respectiva impresión

{ gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void main() { clrscr(); PROGRAMACION II

Página 43


PRODUCTO I Y II do { borde(); gotoxy(26,3);printf("**OPERACIONES BASICAS**"); gotoxy(15,4);printf("1.- Suma");

En este proceso hacemos los mensajes que deseamos que se visualice aquí mismo vamos a validar datos al vector

gotoxy(15,6);printf("2.- Resta"); gotoxy(15,8);printf("3.- Multiplicacion"); gotoxy(15,10);printf("4.- Dividir"); gotoxy(15,12);printf("5.- Salir"); { gotoxy(47,7);printf("

"):

gotoxy(15,14);printf("Ingrese el valor 1==> ");scanf("%d",&valor1); } while(limite<6 || limite>23); do { gotoxy(38,15);printf("

");

gotoxy(15,15);printf("Ingrese el valor 2==> ");scanf("%d",&valor2); } while(valor2>valor1); gotoxy(20,17);printf("Ingrese la opcion que desea===>");scanf("%d",&op); switch(op) { case 1:

Aquí vamos atrabajar con switch, case, while, break ya que es un programa bien intenso porque nos toca hacer las cuatro operaciones básicas.

suma=valor1+valor2; gotoxy(24,18);printf("%d",suma); break; PROGRAMACION II

Página 44


PRODUCTO I Y II case 2: resta=valor1-valor2; gotoxy(30,18);printf("%d",resta); break; case 3: multiplicacion=valor1*valor2; gotoxy(30,18);printf("%d",multiplicacion); break; case 4: dividir=valor1/valor2; gotoxy(30,19);printf("%2.2f",dividir);

En este proceso de la divisi贸n es diferente a las otras.

break; case5: exit(); break; } gotoxy(20,22);printf("Continuar 1 o Finalizar 0==>");scanf("%d",&op1); } while(op1==1); getch(); }

CODIFICADO

PROGRAMACION II

P谩gina 45


PRODUCTO I Y II

Aquí podemos ver que ya se puede visualizar las opciones que deseamos.

Aquí ya tenemos el programa terminado y en el cual escogimos la multiplicación y ustedes pueden observar el corrido.

EJERCICIO ENUNCIADO Diseñe un programa utilizando vectores y funciones que me permita diseñar un menú de opciones PROGRAMACION II

Página 46


PRODUCTO I Y II 1.- Ordenar ascendente y descendente 2.- Datos pares e impares 3.- Datos de las posiciones pares e impares del vector 4.- Salir ANÁLISIS Objetivo Diseñar un menú de opciones: Datos:Intvector1[10],vector2[10],f,j,aux,vector3[10],h=1,vectorpar[10],vectorimp ar[10],i,lim,col,fila,op,op1; PROGRAMA DOCUMENTADO #include<stdio.h> Aquí estan las librerías #include<conio.h> generales y la variable #include<stdlib.h> Intvector1[10],vector2[10],f,j,aux,vector3[10],h=1,vectorpar[10],vectorimpar[10],i ,lim,col,fila,op,op1; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("°"); gotoxy(i,24);printf("°"); } for(i=1;i<=24;i++) Aquí se utiliza el FOR para { gotoxy(1,i);printf("²"); realizar las filas del borde gotoxy(80,i);printf("²"); } con su respectiva } impresión Void ordenar(intlimite) { for(i=1;i<=limite;i++) { do { gotoxy(30,10+i);printf(" "); gotoxy(5,10+i);scanf("%d",&vector1[i]); } while(vector1[i]<3||vector1[i]>25); fila=fila+1; } fila=8; PROGRAMACION II

Página 47


PRODUCTO I Y II for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(vector1[i]<vector1[j]) { aux=vector1[i]; vector1[i]=vector1[j]; vector1[j]=aux; } } } for(i=1;i<=limite;i++) { gotoxy(30,10+i);printf("%d",vector1[i]); fila=fila+1; }

Aquí está el proceso de ordenamiento de una matriz con 2 for también en esto hacemos la validación del programa con un while.

} Void parimpar(intlimite) { for(i=1;i<=limite;i++) { do { gotoxy(30,10+i);printf(" "); gotoxy(5,10+i);scanf("%d",&vector1[i]); } while(vector1[i]<3||vector1[i]>25);

Aquí está el proceso de par e impar en la cual utilizamos los for, while, if.

} int h=1; for(i=1;i<=limite;i++) { if(vector1[i]%2==0) { vectorpar[h]=vector1[i]; gotoxy(30,10+h);printf("%d",vectorpar[h]); h=h+1; } else { vectorimpar[h]=vector1[i]; gotoxy(45,10+h);printf("%d",vectorimpar[h]); h=h+1; } }

PROGRAMACION II

Página 48


PRODUCTO I Y II } Void posicionparimpar(intlimite) { for(i=1;i<=limite;i++) { do { gotoxy(30,10+i);printf(" "); gotoxy(5,10+i);scanf("%d",&vector1[i]); } while(vector1[i]<3||vector1[i]>25); En este proceso se posiciona

} los pares y los impares con int h=1; for, if, do, while. for(i=1;i<=limite;i++) { if(i%2==0) { vectorpar[h]=vector1[i]; gotoxy(30,10+h);printf("%d",vectorpar[h]); h=h+1; } else { vectorimpar[h]=vector1[i]; gotoxy(45,10+h);printf("%d",vectorimpar[h]); h=h+1; } }

} void main() { En este proceso hacemos do los mensajes que { clrscr(); deseamos que se borde(); visualice aquĂ­ mismo gotoxy(20,2);printf("MENU DE OPCIONES"); vamos a validar datos a la gotoxy(25,5); printf("1: Ordenar ascendente y descendente"); matriz. gotoxy(25,6); printf("2: Datos pare e impares del vector"); gotoxy(25,7); printf("3: Datos de las posiciones pares e impares del vector"); gotoxy(25,8); printf("4: Salir"); gotoxy(10,9); printf("Escoja una opcion==>"); scanf("%d",&op); switch(op) { case 1: clrscr(); PROGRAMACION II

PĂĄgina 49


PRODUCTO I Y II borde(); gotoxy(5,10);printf("Vector de Entrada ascendente descendente"); gotoxy(10,6);printf("Ingrese el Limite=>");scanf("%d",&lim); ordenar(lim); break; case 2: clrscr(); borde(); gotoxy(5,10);printf("Vector de Entrada Vector Pares Vector Impares"); gotoxy(10,6);printf("Ingrese el Limite=>");scanf("%d",&lim); parimpar(lim); break; case 3: clrscr(); borde(); gotoxy(5,10);printf("Vector de Entrada Posicion Pares Posicion Impares"); gotoxy(10,6);printf("Ingrese el Limite=>");scanf("%d",&lim); posicionparimpar(lim); break; case 4: exit; break; } gotoxy(10,22);printf("ingrese 1 para continuar o 0 para salir");scanf("%d",&op1); }while(op1==1); getch(); } CODIFICADO

PROGRAMACION II

Pรกgina 50


PRODUCTO I Y II Aquí pueden ver el menú de opciones en el cual debemos escoger el que deseamos.

En este ya escogimos la opción 2 y nos visualiza el vector entrante y los vectores pares e impares.

EJERCICIO ENUNCIADO Diseñe un programa utilizando vectores y funciones que me permita realizar un menú de opciones 1.- Cadena inversa 2.- Vocales 3.- Vocales y consonante 4.- números de vocales y consonantes, impresiones inversas ANÁLISIS Objetivo:Diseñar un menú de opciones utilizando vectores y funciones Datos:char vector1[20],vector2[20],h; int limite,i,op,op1,fila; PROGRAMA DOCUMENTADO #include<stdio.h> PROGRAMACION II

Página 51


PRODUCTO I Y II #include<conio.h> #include<stdlib.h> #include<string.h> char vector1[20],vector2[20],h; int limite,i,op,op1,fila; voidborde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("°"); gotoxy(i,24);printf("°"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("²"); gotoxy(80,i);printf("²"); } } voidcadena(intlimite) { fila=8; limite=strlen(vector1); for(i=0;i<limite;i++) { textcolor(i+1); gotoxy(10,fila); cprintf("%c",vector1[i]); fila=fila+1;

Aquí estan las librerías generales y la variable

Aquí está el proceso del borde de una matriz con 2 for

Aquí está el proceso para ingresar las cadenas de caracteres

} } voidvocales (intlimite) { fila=10; h=0; limite=strlen(vector1); for(i=0;i<limite;i++) { if (vector1[i]=='a' || vector1[i]=='A') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='e' || vector1[i]=='E') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='i' || vector1[i]=='I') { vector2[h]=vector1[i]; h=h+1; PROGRAMACION II

Aquí está el proceso para ingresar las vocales con los for, if.

Página 52


PRODUCTO I Y II } if (vector1[i]=='o' || vector1[i]=='O') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='u' || vector1[i]=='U') { vector2[h]=vector1[i]; h=h+1; } } fila=10; for(i=0;i<h;i++) { textcolor(i+1); gotoxy(40,fila); cprintf("%c",vector2[i]); fila=fila+1; } } voidvocalconsonante(intlimite) { fila=10; h=0; limite=strlen(vector1);

Aquí está el proceso de consonantes en e4ste se utiliza los for y un if ya que hay que hacer una comparación si son o no consonantes

for(i=0;i<limite;i++) { 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]; h=h+1; } if (vector1[i]==' ') { h=h-1; } } for(i=0;i<limite;i++) { if (vector1[i]=='a' || vector1[i]=='A') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='e' || vector1[i]=='E') { PROGRAMACION II

Página 53


PRODUCTO I Y II vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='i' || vector1[i]=='I') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='o' || vector1[i]=='O') { vector2[h]=vector1[i]; h=h+1; } if (vector1[i]=='u' || vector1[i]=='U') { vector2[h]=vector1[i]; h=h+1; } } fila=10; for(i=0;i<h;i++) { textcolor(i+1); gotoxy(40,fila); cprintf("%c",vector2[i]); fila=fila+1; } } void main() { do { clrscr(); borde(); gotoxy(20,2);printf("MENU DE OPCIONES"); gotoxy(25,5); printf("1: Cadena Inversa"); gotoxy(25,6); printf("2: Vocales"); gotoxy(25,7); printf("3: Vocales y consonantes"); gotoxy(25,8); printf("4: # de vocales y consonantes, impresiones invertidas"); gotoxy(10,9); printf("Escoja una opcion==>"); scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); flushall(); gotoxy(10,6);printf("ingrse un nombre==>");gets(vector1); cadena(limite); break; case 2: PROGRAMACION II

Este es el proceso determinaci贸n en este podemos los mensajes que deseamos que salga en el programa

P谩gina 54


PRODUCTO I Y II clrscr(); borde(); gotoxy(25,5); printf("visualiza el nombre"); flushall();

gotoxy(10,6);printf("ingrse un nombre==>");gets(vector1); vocales(limite); break; case 3: clrscr(); borde(); gotoxy(25,5); printf("visualiza el nombre"); flushall(); gotoxy(10,6);printf("ingrse un nombre==>");gets(vector1); vocalconsonante (limite);

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

CORRIDO

PROGRAMACION II

Pรกgina 55


PRODUCTO I Y II Aquí está la opción de las cadenas de las vocales y consonantes en este podemos escoger cualquiera que queramos.

En este ya podemos ver el corrido en la cual escogimos la opción 3 que es ver las vocales y consonantes.

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA UTILIZANDO MATRICES Y FUNCIONES QUE ME PERMITAN INGRESAR N ELEMENTOS EN UNA MATRIZ ENTRE 3 Y 17 RECORRER LA MATRIZ Y ENCONTRAR TODOS AUQELLOS DATOS QUE SEAN PARES GUARDARLOS EN UN NUEVO VECTOR Y PRESENTARLO EN FORMA ACENDENTE. ANALISIS En este programa queremos sacar solo vocales ya sean minúsculas o mayúsculas haciendo el siguiente procedimiento a este programa debemos poder otra librería en este caso el string.h que es para caracteres y la variable char utilizamos un for y 5 if este es para hacer la comparación entre a minúscula y a mayúscula depende a lo que es que se imprima y a continuación podrán ver el programa ya terminado.

PROGRAMA DOCUMENTADO

PROGRAMACION II

Página 56


PRODUCTO I Y II #include<conio.h> #include<stdio.h>

Aquí estan las variables generales

int mat[10][10],limi,op,col,fi,aux,i,j,vec[10],h; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("=");

Aquí está el borde que se utiliza los for con sus respectivas impresiones

gotoxy(i,24); printf("="); } for (i=1;i<=24;i++) { gotoxy(1,i);printf("="); gotoxy(80,i); printf("="); } } void ingreso(int limite) { fi=10; col=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { do { gotoxy(col,fi);scanf("%d",&mat[i][j]); PROGRAMACION II

Página 57


PRODUCTO I Y II } while(mat[i][j]<3 ||mat[i][j]>17); col=col+5;

} fi=fi+1; col=10; } } void pares(int limite) { col=20; fi=20; h=1; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if (mat[i][j]%2==0) { vec[h]=mat[i][j]; h=h+1; } col=col+5; fi=20; } } fi=10; PROGRAMACION II

Pรกgina 58


PRODUCTO I Y II for(i=1;i<=h;i++) { gotoxy(col,fi); printf("%d",vec[i]); fi=fi+1; } } void orden(int limite) { for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(vec[i]>vec[j]) { aux=vec[i]; vec[i]=vec[j]; vec[j]=aux; } } } } void main() { do { clrscr(); borde(); PROGRAMACION II

Pรกgina 59


PRODUCTO I Y II gotoxy(20,4);printf("PARES DE LA MATRIZ"); gotoxy(5,6); printf("Ingrse el limite===>:"); scanf("%d",&limi); ingreso(limi); pares(limi); orden(limi); gotoxy(3,22);printf("para FINALIZAR presione 1 o para CONTINUAR presiona 0==>:");scanf("%d",&op); } while(op==1); getch(); } CORRIDO

Aquí está visua lizada la matriz par donde solo los pares se imprimirán.

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA UTILIZANDO MATRICES Y FUNCIONES QUE ME PERMITA INGRESAR UNA MATRIZ CUADRATICA DE M ELEMNTOS ENTRE 7 Y 23 RECORRER LA MATRIZ Y ENCONTRAR LOS DATOS QUE SE ENCUENTRAN EN LA DIAGONAL PRINCIPAL Y LAS SECUNDARIAS,

PROGRAMACION II

Página 60


PRODUCTO I Y II ASIGNAR LAS A UN VECTOR Y PRESENTAR EN FORMA ORDENADO EN FORMA ACENDENTE Y DESENDENTE. ANALISIS En este programa queremos sacar solo vocales ya sean minúsculas o mayúsculas haciendo el siguiente procedimiento a este programa debemos poder otra librería en este caso el string.h que es para caracteres y la variable char utilizamos un for y 5 if este es para hacer la comparación entre a minúscula y a mayúscula depende a lo que es que se imprima y a continuación podrán ver el programa ya terminado. PROGRAMA DOCUMENTADO #include<conio.h> #include<stdio.h>

int matriz[10][10],i,j,limite,fila,col,op,aux,h,x; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void ingresar (int limite) {

PROGRAMACION II

Página 61


PRODUCTO I Y II fila=10; col=10; gotoxy(8,8);printf("²MATRIZ DE INGRESO²"); for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { do { gotoxy(col,fila);printf("

");

gotoxy(col,fila);scanf("%d",&matriz[i][j]); } while(matriz[i][j]<7 || matriz[i][j]>23); col=col+5; } fila=fila+1; col=10; } } void principal(int limite) { col=30; fila=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { PROGRAMACION II

Página 62


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

void ordenacion(int limite) { PROGRAMACION II

Pรกgina 63


PRODUCTO I Y II for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) {

for(h=1;h<=limite;h++) { for(x=1;x<=limite;x++) { if(matriz[i][j]<matriz[h][x]) { aux=matriz[i][j]; matriz[i][j]=matriz[h][x]; matriz[h][x]=aux; } } } } } }

void impresion(int limite) { col=47; fila=9; for(i=1;i<=limite;i++) { PROGRAMACION II

Pรกgina 64


PRODUCTO I Y II for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]); col=col+5; } col=47; fila=fila+3; } }

void main() { clrscr(); do { borde(); gotoxy(10,5);printf("INGRESE EL LIMITE===> ");scanf(" %d",&limite);

ingresar(limite); principal(limite); secundaria(limite); ordenacion(limite); impresion(limite); gotoxy(25,20);printf("² Desea continuar [1] o [0] para finalizar ² ");scanf("%d",&op);

=

} while(op==1);

PROGRAMACION II

Página 65


PRODUCTO I Y II getch(); } CORRIDO

Aquí está ya terminado el programa que es de ingresar n elementos desde teclado y se visualiza ordenado ascendentemente.

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA UTILIZANDO FUNCIONES QUE ME PERMITE INGRESAR N ELEMENTOS EN UNA MATRIS CUADRATICA ENTRE 4 Y 23, VISULIZE LOS DATOS INGRESADOS EN DICHA MATRIS ANALISIS En este programa queremos sacar solo vocales ya sean minúsculas o mayúsculas haciendo el siguiente procedimiento a este programa debemos poder otra librería en este caso el string.h que es para caracteres y la variable char utilizamos un for y 5 if este es para hacer la comparación entre a minúscula y a mayúscula depende a lo que es que se imprima y a continuación podrán ver el programa ya terminado.

PROGRAMA DOCUMENTADO

PROGRAMACION II

Página 66


PRODUCTO I Y II #include<stdio.h> #include<conio.h> int matriz1[10][10],fila,col,op,i,j,limite; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("/"); gotoxy(80,1);printf("/"); } } void ingreso(int limite) { col=10; fila=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { do { gotoxy(col,fila);("

");

scanf("%d",&matriz1[i][j]); PROGRAMACION II

Pรกgina 67


PRODUCTO I Y II } while(matriz1[i][j]<4 || matriz1[i][j]>23); col=col+5; } fila=fila+1; col=10; } } void visualizar_matriz (int limite) { col=30; fila=10; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz1[i][j]); col=col+5; } fila=fila+1; col=30; } } void main() { clrscr(); gotoxy(5,3);printf("Ingrese la dimencion de la matriz cuadratica >>>>>>= "); scanf("%d",&limite); ingreso(limite); PROGRAMACION II

Pรกgina 68


PRODUCTO I Y II visualizar_matriz(limite); gotoxy(2,23);printf("Si desea presione(0)");scanf("%d",&op);

continuar

presione(1)

para

salir

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

Aquí está ya el programa terminado en la cual se visualiza la matriz cuadrática es decir la una matriz de 3 la impresión también es de 3.

EJERCICIO ENUNCIADO Diseñe un programa en C que permita obtener el producto algebraico de 2 matrices de n elementos ingresados desde teclado que se encuentren entre 1 y 23.

ANALISIS DEL PROGRAMA

PROGRAMACION II

Página 69


PRODUCTO I Y II Este programa nos ha sido creado con funciones para obtener el producto algebraico ya que este programa nos permite ingresar dos matrices y que cada fila con la columna se multiplique y la suma de las mismas

PROGRAMA DOCUMENTADO #include<stdio.h> #include<conio.h> int mat[10][10],mat1[10][10],mat2[10][10],i,j,op,fi,col,limi,h,l; void borde() { for(i=1;i<=80;i++) Aquí se utiliza un FOR para { realizar las filas del borde gotoxy(i,1); printf("%"); con su respectiva impresión gotoxy(i,24); printf("%"); } for(i=1;i<=24;i++) Aquí se utiliza un FOR para { realizar las filas del borde gotoxy(1,i);printf("%"); con su respectiva impresión gotoxy(80,i); printf("%"); } }

void ingre(int limite) { fi=10; En esta función se realiza la col=10; programación del ingreso de for(i=1;i<=limite;i++) una matriz se utiliza un con { dos FOR siempre con sus for(j=1;j<=limite;j++) respectivas llaves { do { Ingreso de la gotoxy(col,fi); printf(" "); primera matriz gotoxy(col,fi); scanf("%d",&mat[i][j]); } while(mat[i][j]<0 || mat1[i][j]>23); col=col+5; } fi=fi+1; PROGRAMACION II

Codificación del borde con su inicialización y su finalización

Se inicia la función INGRE

Se inicia con un do para el DO- WHILE

Se cierra con una llave el DO- WHILE

Incrementación de las columnas y filas Página 70


PRODUCTO I Y II col=10; } fi=10; En esta parte se realiza la col=30; programación del segundo for(i=1;i<=limite;i++) ingreso de una matriz se { utiliza un con dos FOR siempre con sus respectivas for(j=1;j<=limite;j++) llaves { Ingreso de la gotoxy(col,fi); scanf("%d",&mat1[i][j]); primera matriz col=col+5; } fi=fi+1; col=30; } Se cierra la función INGRE }

void opera(int limite) { En esta función se programa fi=10; del la función OPERA para de col=50; una matriz resultante ya que for(i=1;i<=limite;i++) se utiliza un con dos FOR { siempre con sus respectivas for(j=1;j<=limite;j++) llaves { mat2[i][j]=0; for(l=1;l<=limite;l++) En esta parte del programa { para multiplicar las filas y mat2[i][j]=mat[i][l]*mat1[l][j]+mat2[i][j]; columnas se utiliza el FOR para } que pase y siga a la otra } columna } for(i=1;i<=limite;i++) { En esta parte se for(j=1;j<=limite;j++) realiza con dos FOR { para la visualización gotoxy(col,fi); printf("%d",mat2[i][j]); de la matriz col=col+5; Resultante } Ingreso de la fi=fi+1; primera matriz col=50; Se cierra la función OPERA }

} PROGRAMACION II

Página 71


PRODUCTO I Y II void main() { do { Inicialización del DO -WHILE clrscr(); En esta parte se borde(); visualiza el contenido gotoxy(20,3); printf("MATRIZ DE PRODUCTO ALGEBRAICO") gotoxy(7,5); printf("Ingreso limite===>:");scanf("%d",&limi); que necesita para imprimir en la pantalla gotoxy(6,7); printf(" M INGRESO M INGRESO MRESULTANTE"); ingre(limi); Ingreso de las funciones para que corra el programa opera(limi); gotoxy(3,22); printf("para CONTINUAR {1} o para SALIR {0}"); scanf("%d",&op); } while(op==1); Finalización del DO -WHILE getch(); }

4.-Corrido del programa •

1 coje la fila con la columna multiplica de ahí suma el resultado

EJERCICIO ENUNCIADO PROGRAMACION II

Página 72


PRODUCTO I Y II Realizar un programa que permite ingresar con un menú de opciones utilizando funciones y matrices 1.- Matriz con números primos 2.- Matriz Ordenada ANÁLISIS Este programa nos despliega una pantalla en la cual nos permita escoger algunas de las siguientes opciones como : generar una matiz con números primos, y como ordenar una matiz, este programa se lo ha programado en Turbo C++ con ayuda de funciones e ingresando matrices como vamos a explicar a continuación. PROGRAMA DOCUMENTADO DECLARACION DE VARIABLES

#include<stdio.h> Aquí se declara todas las variables q se utiliza para el programa #include<conio.h> intl,d,mat[10][10],limi,col,fi,i,op,op1,j,aux,f,contp,regre; void borde() Se utiliza aquí dos FOR { para programar el for(i=1;i<=80;i++) borde teniendo sus { respectivas llaves gotoxy(i,1); printf("*"); tanto abiertas como gotoxy(i,24); printf("*"); cerradas } for(i=1;i<=24;i++) { gotoxy(1,i);printf("*"); gotoxy(80,i);printf("*"); } } void primos(int limite) { fi=10; col=10; d=1; l=0; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { do { contp=0; regre=0; PROGRAMACION II

Inicialización de la función

Se utiliza dos for para generar la matriz

Inicialización de WHILE

Página 73


PRODUCTO I Y II for(f=1;f<=d;f++) { if(d%f==0) Se utiliza un if para q una variable como { d y se divida para el for para asi formar contp=contp+1; un ciclo y se repita y si es 0 imprime } } if(contp<=2) Se utiliza un if para que el resultado sea { siempre menor e igual a dos y también mat[i][j]=d; d=d+1; y si no pasa al else regre=1; } else { Se utiliza un else para que el contador regre=0; siempre regrese a 0 y la variable d=d+1; incremente } } while(regre==0); } Finalización de WHILE } fi=10; col=20; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) Se utiliza dos For para la { gotoxy(col,fi); printf("%d",mat[i][j]); visualización de la matriz col=col+5; primos } fi=fi+1; col=20; } } Finalización de la función

voidmorden(int limite) { Inicialización de la función fi=10; col=10; Se ingresa dos For para ingresar una for(i=1;i<=limite;i++) { matriz y un DO- WHILE para que for(j=1;j<=limite;j++) ingrese solo dichos números <3 y >36 { do { Se programa para gotoxy(col,fi);printf(" ");gotoxy(col,fi); scanf("%d",&mat[i][j]); } ingresar la matriz while(mat[i][j]<3 || mat[i][j]>36); col=col+5; } fi=fi+1; col=10; } fi=10; col=40; for(i=1;i<=limite;i++)

PROGRAMACION II

Página 74


PRODUCTO I Y II { for(j=1;j<=limite;j++) { for(d=1;d<=limite;d++) { for(l=1;l<=limite;l++) {

Se programa con dos For para ordenar la matriz

if(mat[i][j]<mat[d][l]) Aquí se ingresa en la { programación del programa un if aux=mat[i][j]; mat[i][j]=mat[d][l]; con el proceso burbuja para mat[d][l]=aux; ordenar la matriz } col=col+5; } fi=fi+1; col=40; } } } fi=10; col=40; for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) Aquí se ingresa dos For para { la visualización de la matriz gotoxy(col,fi); printf("%d",mat[i][j]); col=col+5; } fi=fi+1; col=40; } } Finalización de la función

voidmain () Inicialización de la función { do { clrscr(); borde(); Se codifica la Menú de gotoxy(20,5);printf("MENU DE OPCIONES"); opciones para que el gotoxy(10,7); printf("1.-MATRIZ CON NUMEROS PRIMOS"); programa nos permita gotoxy(10,9); printf("2ú-MATRIZ ORNDENADA"); gotoxy(10,11); printf("3.-SALIR"); escoger opciones gotoxy(10,13); printf("Escoja la opcion===>:");scanf("%d",&op); switch(op) Inicialización deswitch { case 1: clrscr(); Codificación para la borde(); primera opción gotoxy(10,4); printf("1.-MATRIZ CON NUMEROS PRIMOS"); Como generar la gotoxy(5,6); printf("Ingrese el limite===>:");scanf("%d",&limi); matriz con números primos(limi); gotoxy(3,22); printf("[1] para CONTINUAR o [0] para FINALIZAR") primos ;scanf("%d",op1); break; PROGRAMACION II

Página 75


PRODUCTO I Y II case 2: clrscr(); borde(); gotoxy(10,4); printf("2ú-MATRIZ ORNDENADA"); Codificación para gotoxy(5,6); printf("Ingrese el limite===>:");scanf("%d",&limi); la segunda opción gotoxy(9,9);printf("MATRIZ DE INGRESO MATRIZ ORDENADA"); Como generar la morden(limi); gotoxy(3,22); printf("[1] para CONTINUAR o [0] para FINALIZAR"); matriz con scanf("%d",op1); números primos break; /*case 3: exit break;*/ } Inicialización de switch while(op1==1); getch(); } Finalización de la función y programa principal

CORRIDO

ESCOJEMOS LA OPCION 1 1.-MATRIZ CON NUMEROS PRIMOS Se ingresa primero el límite y así se genera la matriz

PROGRAMACION II

Página 76


PRODUCTO I Y II

2.- MATRIZ ORDENADA • • •

Primero se debe ingresar el limite Luego se ingresa la Matriz Nos visualiza la matriz ordenada

PROGRAMACION II

Página 77


PRODUCTO I Y II

EJERCICIO ENUNCIADO Realizar un programa que permite ingresar con un menú de opciones utilizando funciones y matrices 1.- Tabla 2.- Fibonaci 3.- Factorial ANÁLISIS Este programa nos despliega una pantalla en la cual nos permita escoger algunas de las siguientes opciones como : generar una matiz con números primos, y como ordenar una matiz, este programa se lo ha programado en Turbo C++ con ayuda de funciones e ingresando matrices como vamos a explicar a continuación.

PROGRAMACION II

Página 78


PRODUCTO I Y II

PROGRAMA DOCUMENTADO #include<stdio.h> #include<conio.h> #include<stdlib.h> int vector1[10],vector2[10],f,vector3[10],z,b=0,c=1,i,limite,col,fila,op,op1; void borde() { for(i=1;i<=80;i++) { gotoxy(i,1);printf("°"); gotoxy(i,24);printf("°"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("²"); gotoxy(80,i);printf("²"); } } void tabla(int limite) { col=10; fila=6; for(i=1;i<=limite;i++) { gotoxy(10,fila);printf("%d",i); gotoxy(12,fila);printf("*"); gotoxy(14,fila);printf("%d",f); gotoxy(16,fila);printf("="); PROGRAMACION II

Página 79


PRODUCTO I Y II vector1[i]=f*i; gotoxy(18,fila);printf("%d",vector1[i]); fila=fila+1; } } void figonasci(int limite) { gotoxy(12,6); printf("serie\n"); printf("

");printf("%d\n",c);

for(i=2;i<=limite;i++) { z=b+c; b=c; c=z; printf ("

");printf("%d\n",z);

} } void main() { do { clrscr(); borde(); gotoxy(30,2);printf("Menu con vector"); gotoxy(40,5); printf("1: Tabla"); gotoxy(40,6); printf("2: Figonasci"); PROGRAMACION II

Pรกgina 80


PRODUCTO I Y II gotoxy(40,7); printf("3: Factorial"); gotoxy(40,8); printf("4: Salir"); gotoxy(10,9); printf("Escoja una opcion==>"); scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); gotoxy(10,2); printf("ingrese el limite==>");scanf("%d",&limite); gotoxy(10,3); printf("ingrese el factor==>");scanf("%d",&f); tabla(limite); break; case 2: clrscr(); borde(); gotoxy(10,2); printf("ingrese el limite==>");scanf("%d",&limite); figonasci(limite); break; case 3: clrscr(); borde();

break; case 4: exit; break; } PROGRAMACION II

Pรกgina 81


PRODUCTO I Y II gotoxy(10,22);printf("ingrese 1 para continuar o 0 para salir");scanf("%d",&op); }while(op1==1); getch(); } CORRIDO

Aquí tenemos el menú del programa que debemos sacar.

Aquí ya sale el programa ya hecho para solo visualizarlo. PROGRAMACION II

Página 82


PRODUCTO I Y II

EJERCICIO ENUNCIADO DISEÑE UN PROGRAMA CON N ELEMENTOS INGRESADOS DESDE TECLADO EN LA CUAL SE INGRESE UNA MATRIZ CUADRATICA ANÁLISIS Este programa nos despliega una pantalla en la cual nos permita escoger algunas de las siguientes opciones como : generar una matiz con números primos, y como ordenar una matiz, este programa se lo ha programado en Turbo C++ con ayuda de funciones e ingresando matrices como vamos a explicar a continuación. PROGRAMA DOCUMENTADO # include<stdio.h> # include<conio.h> int cot,fact,i,j,op,col,fila,limt,matriz[10][10];

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

Página 83


PRODUCTO I Y II } void ingresar (int limite, int factor) { fila=10; col=5; cot=0; gotoxy(8,8);printf("MATRIZ DE INGRESO"); for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { cot=cot+1; matriz[i][j]=factor*cot;

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

col=col+4; } fila=fila+1; col=5; } }

void visualizar (int limite) { fila=10; col=38; PROGRAMACION II

Pรกgina 84


PRODUCTO I Y II gotoxy(35,8);printf("MATRIZ DE SALIDA"); for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { gotoxy(col,fila);printf("%d",matriz[i][j]);

col=col+4; } fila=fila+1; col=38; } } void main () { do { clrscr(); borde(); gotoxy(17,2);printf(" MATRIZ DE CUALQUIER FACTOR INGRESADO"); gotoxy(22,4);printf("Ingresar el limite = ");scanf("%d",&limt); gotoxy(22,6);printf("Ingresar el factor = ");scanf("%d",&fact); ingresar(limt,fact); visualizar(limt); gotoxy(25,20);printf(" Desea continuar [1] o [0] para finalizar = ");scanf("%d",&op); }

PROGRAMACION II

Pรกgina 85


PRODUCTO I Y II while(op==1);

getch(); } CORRIDO

Aquí está ya el programa ya terminado y listo para poder revisarlo.

EJERCICIO ENUNCIADO Realizar un programa que me permita utilizar vectores y funciones que me permitan diseñar el Menú de Opciones Declaración de las variables Aquí se ingresa un for para que este se ubica en las posiciones un visualice el signo # 1. Ordenar Ascendente y Descendente 2. Datos Pares e Impares 3. Datos de las Posiciones Pares e Impares Aquí se ingresa un for para que este se ubica en las posiciones un visualice el signo # PROGRAMACION II

Página 86


PRODUCTO I Y II ANALISIS

Este programa nos permita ingresar una opción de la cual el usuario la necesite y cada opción en la que desplega una ventana en la que le permite ver como ordenar un vector o como también Datos pares e impares de un vector y las posiciones de un vector Codificación del borde en pantalla

PROGRAMA

#include<stdio.h> #include<conio.h> int i,vec[10],vec1[10],vec2[10],limi,par,impar,p,aux,aux1,op1,op,im,fi,j,ppar, pp,pi,pimpar; void borde() { for (i=1;i<=80;i++) { gotoxy(i,1); printf("#"); gotoxy(i,24); printf("#"); } for (i=1;i<=24;i++) { gotoxy(1,i); printf("#"); gotoxy(80,i); printf("#"); } } void ingreso(int limite) { fi=10; for(i=1;i<=limite;i++) { do { gotoxy(10,fi);printf(" "); gotoxy(10,fi); scanf("%d",&vec[i]); } while(vec[i]<3||vec[i]>23); fi=fi+1; } } void ascen (int limite) { PROGRAMACION II

Página 87


PRODUCTO I Y II for (i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(vec[i]<vec[j]) { aux=vec[i]; vec[i]=vec[j]; vec[j]=aux; } } } fi=10; for (i=1;i<=limite;i++) { gotoxy(20,fi);printf("%d",vec[i]); fi=fi+1; } } void descen(int limite) { for (i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(vec[i]>vec[j]) { aux1=vec[i]; vec[i]=vec[j]; vec[j]=aux1; } } } fi=10; for(i=1;i<=limite;i++) { gotoxy(30,fi); printf("%d",vec[i]); fi=fi+1; } } void pares(int limite) { PROGRAMACION II

Pรกgina 88


PRODUCTO I Y II p=1; for(i=1;i<=limite;i++) { par=vec[i]%2; if(par==0) { vec1[p]=vec[i]; p=p+1; } } fi=10; for (i=1;i<p;i++) { gotoxy(20,fi); printf("%d",vec1[i]); fi=fi+1; } }

void impares(int limite) { im=1; for(i=1;i<=limite;i++) { impar=vec[i]%2; if(impar==1) { vec2[im]=vec[i]; im=im+1; } } fi=10; for(i=1;i<im;i++) { gotoxy(30,fi);printf("%d",vec2[i]); fi=fi+1; } } void ppares(int limite) { pp=1; for(i=1;i<=limite;i++) { ppar=i%2; if(ppar==0) { PROGRAMACION II

Pรกgina 89


PRODUCTO I Y II vec1[pp]=vec[i]; pp=pp+1; } } fi=10; for(i=1;i<pp;i++) { gotoxy(20,fi); printf("%d",vec1[i]); fi=fi+1; } } void pimpares(int limite) { pi=1; for(i=1;i<=limite;i++) { pimpar=i%2; if(pimpar==1) { vec2[pi]=vec[i]; pi=pi+1; } } fi=10; for(i=1;i<pi;i++) { gotoxy(30,fi);printf("%d",vec2[i]); fi=fi+1; } } void main() { do { clrscr(); borde(); gotoxy(25,3); printf("MENU PRIINCIPAL"); gotoxy(5,6); printf("1:Ordenar Ascendente y Descendente"); gotoxy(5,8); printf("2:Datos Impares y Pares"); gotoxy(5,10); printf("3:Posiciones Pares e Impares"); PROGRAMACION II

Pรกgina 90


PRODUCTO I Y II gotoxy(5,12); printf("4:Salir"); gotoxy(8,15); printf("Ingrese la opcion==>:"); scanf("%d",&op); switch(op) { case 1: clrscr(); borde(); gotoxy(5,4);printf("Ingrese el limite===>:"); scanf("%d",&limi); ingreso(limi); ascen(limi); descen(limi); break; case 2: clrscr(); borde(); gotoxy(5,4);printf("Ingrese el limite===>:"); scanf("%d",&limi); ingreso(limi); pares(limi); impares(limi); break; case 3: clrscr(); borde(); gotoxy(5,4);printf("Ingrese el limite===>:"); scanf("%d",&limi); ingreso(limi); ppares(limi); pimpares(limi); break; } gotoxy(3,23); printf("para SALIR 0 o para CONTINUEAR 1"); scanf("%d",op1); } while(op1==1); getch(); } CORRIDO

PROGRAMACION II

Pรกgina 91


PRODUCTO I Y II

PROGRAMACION II

Pรกgina 92


PRODUCTO I Y II

ORDEN DELAS POSICIONES PARES E IMPARES

EJERCICIO ENUNCIADO Realizar un programa que me permita utilizar vectores y funciones que me permitan diseñar el Menú de Opciones 1. Cadena Inversa 2. Vocales y Consonantes 3. Numero de vocales y numero de Consonantes

ANALISIS Este programa nos permita ingresar una cadena de caracteres y con una opción el usuario escogerá una opción y dicha opción le permite desplegar una ventana lo que usted quiere hacer en la que se ve como ordenar un vector con caracteres como también Datos pares e impares de un vector y las posiciones de un vector PROGRAMA #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> int i,l,a,limi,fi,op,op1,h,e,o,u; char vec[10],vec1[10],vec2[10]; void borde() { PROGRAMACION II

Página 93


PRODUCTO I Y II for(i=1;i<=80;i++) { gotoxy(i,1);printf("*"); gotoxy(i,24);printf("*"); } for(i=1;i<=24;i++) { gotoxy(1,i);printf("&"); gotoxy(80,i);printf("&"); } } void cadena() { flushall(); gotoxy(8,5);printf("INGRESE LA CADENA DE CARACTERES ==> " ); gets(vec); } void inversa() { limi=strlen(vec); fi=10; for(i=0;i<=limi;i++) { gotoxy(15,fi);printf("%c",vec[i]); fi=fi+1; } fi=10; for(i=limi;i>=0;i--) { gotoxy(30,fi);printf("%c",vec[i]); fi=fi+1; } }

void vocal() { limi=strlen(vec); fi=10; for(i=0;i<=limi;i++) { gotoxy(15,fi);printf("%c",vec[i]); fi=fi+1; } limi=strlen(vec); fi=6; h=1; for(i=0;i<=limi;i++) { if(vec[i]=='a'||vec[i]=='e'||vec[i]=='i'||vec[i]=='o'||vec[i]=='u') { PROGRAMACION II

Pรกgina 94


PRODUCTO I Y II vec1[h]=vec[i]; h=h+1; } } fi=10; for(i=1;i<h;i++) { gotoxy(30,fi);printf("%c",vec1[i]); fi=fi+1; } } void conso() { limi=strlen(vec); fi=10; for(i=0;i<=limi;i++) { gotoxy(15,fi);printf("%c",vec[i]); fi=fi+1; } limi=strlen(vec); fi=6; a=1; for(i=0;i<=limi;i++) { if(vec[i]!='a'&& vec[i]!='e'&& vec[i]!='i'&& vec[i]!='o'&& vec[i]!='u') { vec2[a]=vec[i]; a=a+1; } } fi=10; for(i=1;i<a;i++) { gotoxy(50,fi);printf("%c",vec2[i]); fi=fi+1; } } void nvocal() { limi=strlen(vec); a=0; e=0; l=0; o=0; u=0; for(i=0;i<=limi;i++) { if(vec[i]=='a') PROGRAMACION II

Pรกgina 95


PRODUCTO I Y II { a=a+1; } gotoxy(4,11);printf(" a = %d",a); if(vec[i]=='e') { e=e+1; } gotoxy(4,13);printf(" e = %d",e); if(vec[i]=='i') { l=l+1; } gotoxy(4,15);printf(" i = %d",l); if(vec[i]=='o') { o=o+1; } gotoxy(4,17);printf(" o = %d",o); if(vec[i]=='u') { u=u+1; } gotoxy(4,19);printf(" u = %d",u); } } void ncons() { limi=strlen(vec); h=0; for(i=1;i<=limi;i++) { if(vec[i]!='a'&&vec[i]!='e'&&vec[i]!='i'&&vec[i]!='o'&&vec[i]!='u') { h=h+1; } } gotoxy(4,6);printf(" el número de consonantes son %d", h ); } void main() { do { clrscr(); borde(); gotoxy(30,2);printf("MENU DE OPCIONES"); gotoxy(10,5);printf("1. CADENA INVERSA "); gotoxy(10,6);printf("2. VOCALES Y CONSONANTES "); gotoxy(10,7);printf("3. NUMERO DE VOCALES Y CONSONANTES "); PROGRAMACION II

Página 96


PRODUCTO I Y II gotoxy(10,8);printf("4. SALIR"); gotoxy(14,10); printf("ELIJA UNA OPCION==> "); scanf("%d",&op); switch(op) { clrscr(); borde(); gotoxy(30,3);printf("1. CADENA INVERSA "); gotoxy(13,8);printf("CADENA"); gotoxy(28,8);printf("INVERSA"); cadena(); inversa(); break; case 2: clrscr(); borde(); gotoxy(10,3);printf("2. VOCALES Y CONSONANTES "); gotoxy(13,8);printf("CADENA"); gotoxy(28,8);printf("VOCALES"); gotoxy(43,8);printf("CONSONANTES"); cadena(); vocal(); conso(); Aquí está el proceso break; determinación en el case 3: cual se esta los for, clrscr(); borde(); while, break, case . gotoxy(20,3);printf("3. NUMERO DE VOCALES Y CONSONANTES "); cadena(); nvocal(); ncons(); break; case 4: exit; break; } gotoxy(10,22); printf("Presione 1 para continuar o 0 para salir==>"); scanf("%d",&op1); } while(op1==1); getch(); }

PROGRAMACION II

Página 97


PRODUCTO I Y II CORRIDO

NUMERO DE VOCALES Y CONSONANTES

PROGRAMACION II

Pรกgina 98


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