Programa que muestra un dibujo de un carrito en c con la libreria graphics.h.
#include "stdafx.h"
#include"conio.h"
#include"stdlib.h"
#include"stdio.h"
#include"graphics.h"
using namespace std;
int main()
{
int pantalla=DETECT,modo,error;
printf("presione una tecla iniciar el modo grafico!");
_getch();
initgraph(&pantalla,&modo,"");
error=graphresult();
if(error!=grOk)
{
printf("error al iniciar el modo grafico!");
_getch();
exit(0);
}
int y,x,w,x1,y1,x2,y2;
int x3,y3,stangle,endangle,xradius,yradius;
setcolor(WHITE);
circle(x=50,y=420,w=25);
floodfill(x,y,WHITE);
circle(x=250,y=420,w=25);
floodfill(x,y,WHITE);
setfillstyle(SOLID_FILL,BLACK);
setcolor(BLUE);
line( x1=75, y1=420,x2=225,y2=420 );
ellipse(x3=120,y3=400,stangle=45,endangle=180,xradius=90,yradius=80 );
ellipse(x3=-8,y3=400,stangle=340,endangle=30,xradius=300,yradius=55 );
line( x1=175, y1=340,x2=251,y2=372 );
line( x1=50, y1=380,x2=190,y2=380 );
line( x1=120, y1=330,x2=120,y2=420 );
line( x1=190, y1=380,x2=190,y2=420 );
setcolor(BROWN);
ellipse(x3=120,y3=380,stangle=0,endangle=180,xradius=70,yradius=50 );
delay(100);
_getch();
return 0;
}
sábado, 4 de diciembre de 2010
GRAFICOS EN C
GRAPHICS.H
La calidad de los monitores es medida por la resolución ó nitidez que presentan. El manejo de pantalla para modo gráfico se utiliza esta resolución, imprimiendo en PIXELES. La resolución normal del monitor mide 640 x 480, 640 columnas por 480 renglones.
Los archivos necesarios en disco para el manejo de modo gráfico son <GRAPHICS.H> , los archivos *.BGI y los archivos *.CHR. Los archivos BGI son los dispositivos detectores del monitor y los CHR son los distintos archivos de FONTS ó tipos de letras. La librería GRAPHICS es una utilería de Turbo C que cuenta con una serie de instrucciones reservada para el manejo de gráficos.
INICIALIZACIÓN DE GRÁFICOS.
Para la activación del modo gráfico se procede a su inicialización con las siguientes instrucciones:
graphDriver = DETECT;
graphDriver y graphMode son variables tipo int ( valores numéricos enteros ) declaradas por el usuario para detectar el tipo de monitor y su resolución. DETECT es palabra reservada en mayúsculas que realiza la detección del monitor automáticamente. Para inicializar la pantalla se utiliza la instrucción reservada:
initgraph(&graphDriver, &graphMode, driverPath);
graphDriver y graphMode nos dan las características físicas del monitor y el driverPath indica donde se localizan los archivos de gráficos, si se colocan comillas <" "> indica en el directorio en que estamos localizados.
Para colocar el directorio donde se encuentran los BGI y CHR se añade el camino: "C:\\TURBOC\\BGI" Para regresar a modo texto contamos con la instrucción: restorecrtmode( ); Asimismo contamos con la instrucción de terminación de modo gráfico, necesaria al finalizar nuestro programa: closegraph( );
FUNCIONES DE LA LIBRERIA GRAPHICS.H
ESTRUCTURA DE DATOS DINAMICA Y CON FUNCIONES
Este programa muestra una estructura de datos de n cantidad de alumnos,matricula y 3 calificaciones.
Con el uso de memoria dinamica con la funcion "new" para asignar memoria.
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
struct estructura_alumno{
/*definimos la estructura_alumno*/
char nombre[30];
char matricula[10];
int cal;
int cal1;
int cal2;
void datos(){
clrscr();
int i;
cout<<"Escribe el nombre del alumno:\n";
cin>>nombre;
cout<<"Escribe la matricula del alumno:\n";
cin>>matricula;
cout<<"Escribe la primera calificacion del alumno:\n";
cin>>cal;
cout<<"Escribe la segunda calificacion del alumno:\n";
cin>>cal1;
cout<<"Escribe la tercer calificacion del alumno:\n";
cin>>cal2;
clrscr();
}
void impr(){
cout<<"El alumno se llama" <<" : "<<nombre<<" \n"<<"Con la matricula"<<" : "<<matricula<<"\n"<<"Sus calificaciones son :"<<cal<<","<<cal1<<","<<cal2;
}
};
struct estructura_alumno *al;
void main()
{
int i,tm;
cout<<"cuantos alumnos anexara\n";
cin>>tm;
al=new estructura_alumno[tm];
for(i=0;i<tm;i++){
cout<<"\n";
al[i].datos();}
for(i=0;i<tm;i++){
cout<<"\n";
al[i].impr();}
getch();
}
Con el uso de memoria dinamica con la funcion "new" para asignar memoria.
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
struct estructura_alumno{
/*definimos la estructura_alumno*/
char nombre[30];
char matricula[10];
int cal;
int cal1;
int cal2;
void datos(){
clrscr();
int i;
cout<<"Escribe el nombre del alumno:\n";
cin>>nombre;
cout<<"Escribe la matricula del alumno:\n";
cin>>matricula;
cout<<"Escribe la primera calificacion del alumno:\n";
cin>>cal;
cout<<"Escribe la segunda calificacion del alumno:\n";
cin>>cal1;
cout<<"Escribe la tercer calificacion del alumno:\n";
cin>>cal2;
clrscr();
}
void impr(){
cout<<"El alumno se llama" <<" : "<<nombre<<" \n"<<"Con la matricula"<<" : "<<matricula<<"\n"<<"Sus calificaciones son :"<<cal<<","<<cal1<<","<<cal2;
}
};
struct estructura_alumno *al;
void main()
{
int i,tm;
cout<<"cuantos alumnos anexara\n";
cin>>tm;
al=new estructura_alumno[tm];
for(i=0;i<tm;i++){
cout<<"\n";
al[i].datos();}
for(i=0;i<tm;i++){
cout<<"\n";
al[i].impr();}
getch();
}
ESTRUCTURA DE DATOS CON ARREGLO Y FUNCIONES
Este programa es una estrcutura que captura 3 alumnos, 3 de sus calificaciones y su matricula.
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
struct estructura_alumno{
/*definimos la estructura_alumno*/
char nombre[30];
char matricula[10];
int cal;
int cal1;
int cal2;
void datos(){
clrscr();
int i;
cout<<"Escribe el nombre del alumno:\n";
cin>>nombre;
cout<<"Escribe la matricula del alumno:\n";
cin>>matricula;
cout<<"Escribe la primera calificacion del alumno:\n";
cin>>cal;
cout<<"Escribe la segunda calificacion del alumno:\n";
cin>>cal1;
cout<<"Escribe la tercer calificacion del alumno:\n";
cin>>cal2;
clrscr();
}
void impr(){
cout<<"El alumno se llama" <<" : "<<nombre<<" \n"<<"Con la matricula"<<" : "<<matricula<<"\n"<<"Sus calificaciones son :"<<cal<<","<<cal1<<","<<cal2;
}
};
struct estructura_alumno al[3];
void main()
{
int i;
clrscr();
for(i=0;i<3;i++){
cout<<"\n";
al[i].datos();}
for(i=0;i<3;i++){
cout<<"\n";
al[i].impr();}
getch();
}
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
struct estructura_alumno{
/*definimos la estructura_alumno*/
char nombre[30];
char matricula[10];
int cal;
int cal1;
int cal2;
void datos(){
clrscr();
int i;
cout<<"Escribe el nombre del alumno:\n";
cin>>nombre;
cout<<"Escribe la matricula del alumno:\n";
cin>>matricula;
cout<<"Escribe la primera calificacion del alumno:\n";
cin>>cal;
cout<<"Escribe la segunda calificacion del alumno:\n";
cin>>cal1;
cout<<"Escribe la tercer calificacion del alumno:\n";
cin>>cal2;
clrscr();
}
void impr(){
cout<<"El alumno se llama" <<" : "<<nombre<<" \n"<<"Con la matricula"<<" : "<<matricula<<"\n"<<"Sus calificaciones son :"<<cal<<","<<cal1<<","<<cal2;
}
};
struct estructura_alumno al[3];
void main()
{
int i;
clrscr();
for(i=0;i<3;i++){
cout<<"\n";
al[i].datos();}
for(i=0;i<3;i++){
cout<<"\n";
al[i].impr();}
getch();
}
viernes, 3 de diciembre de 2010
USO DE MEMORIA DINAMICA
Programa que muestra el uso de memoria dinamica en una matriz con el uso de la funcion new y delete.
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int fil,col,i,j;
int **matriz;
cout<<"¿Cantidad de filas ?? ";
cin>>fil;
cout<<"¿Cantidad de Columnas ?? ";
cin>>col;
matriz = new int*[fil];
for (i=0;i<fil;i++){
matriz[i] = new int[col];
}
for (i=0;i<fil;i++){
for (j=0;j<col;j++){
cin>>matriz[i][j];
}
}
cout<<"\n";
cout <<"\nLos valores de la matriz son: \n ";
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
cout<<matriz[i][j]<<" ";
}
cout<<" \n ";
}
for(i=0;i<fil;i++){
delete [] matriz[i];
delete [] matriz;
}
getch();
}
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int fil,col,i,j;
int **matriz;
cout<<"¿Cantidad de filas ?? ";
cin>>fil;
cout<<"¿Cantidad de Columnas ?? ";
cin>>col;
matriz = new int*[fil];
for (i=0;i<fil;i++){
matriz[i] = new int[col];
}
for (i=0;i<fil;i++){
for (j=0;j<col;j++){
cin>>matriz[i][j];
}
}
cout<<"\n";
cout <<"\nLos valores de la matriz son: \n ";
for(i=0;i<fil;i++){
for(j=0;j<col;j++){
cout<<matriz[i][j]<<" ";
}
cout<<" \n ";
}
for(i=0;i<fil;i++){
delete [] matriz[i];
delete [] matriz;
}
getch();
}
USO DE MEMORIA DINAMICA
La asignación dinámica de memoria es una característica de C. Le permite al usuario crear tipos de datos y estructuras de cualquier tamaño de acuerdo a las necesidades que se tengan en el programa.
Programa que muestra el uso de memoria dinamica en un vector con el uso de la funcion new y delete.
#include<conio.h>
#include<iostream.h>
int main(void)
{
clrscr();
int *vector,tm,i;
int indice=0;
cout<<"cuantos elementos\n";
cin>>tm;
vector = new int[tm];
for(indice=0;indice<tm;indice++){
cout<<"introduzca el vector"<<": ";
cin>>vector[indice];
}
cout<<"\n";
for(i=0;i<tm;i++){
cout<<"el vector es "<<": "<<vector[i]<<"\n";
}
getch();
}
Programa que muestra el uso de memoria dinamica en un vector con el uso de la funcion new y delete.
#include<conio.h>
#include<iostream.h>
int main(void)
{
clrscr();
int *vector,tm,i;
int indice=0;
cout<<"cuantos elementos\n";
cin>>tm;
vector = new int[tm];
for(indice=0;indice<tm;indice++){
cout<<"introduzca el vector"<<": ";
cin>>vector[indice];
}
cout<<"\n";
for(i=0;i<tm;i++){
cout<<"el vector es "<<": "<<vector[i]<<"\n";
}
getch();
}
martes, 9 de noviembre de 2010
Metodos de ordenamiento
PROGRAMA QUE CAPTURA VALORES NUMERICOS DE UNA MATRIZ DE 4X4 Y CALCULA LA SUMA Y EL PROMEDIO DE ESTA DE LA DIAGONAL PRINCIPAL DE LA MATRIZ.
#include<conio.h>
#include<iostream.h>
void main()
{
clrscr();
int i,j,k,l;
int a[4][4];
float prom,prom1;
cout<<"Introduze tus valores:\n"<<endl;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
cin>>a[i][j];
}
}
cout <<"\nLos valores de la matriz son: \n "<<endl;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
cout<<a[i][j]<<" ";
}
cout<<" \n "<<endl;
}
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(i==j)
prom=prom+a[i][j];
}
}
prom1=prom/4;
cout<<"LA SUMA DE LA DIAGONAL ES : "<<prom<<endl;
cout<<"EL PROMEDIO DIAGONAL ES : "<<prom1<<endl;
getch();
}
#include<conio.h>
#include<iostream.h>
void main()
{
clrscr();
int i,j,k,l;
int a[4][4];
float prom,prom1;
cout<<"Introduze tus valores:\n"<<endl;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
cin>>a[i][j];
}
}
cout <<"\nLos valores de la matriz son: \n "<<endl;
for(i=0;i<4;i++){
for(j=0;j<4;j++){
cout<<a[i][j]<<" ";
}
cout<<" \n "<<endl;
}
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(i==j)
prom=prom+a[i][j];
}
}
prom1=prom/4;
cout<<"LA SUMA DE LA DIAGONAL ES : "<<prom<<endl;
cout<<"EL PROMEDIO DIAGONAL ES : "<<prom1<<endl;
getch();
}
Metodos de ordenamiento
PROGRAMA QUE CAPTURA VALORES NUMERICOS EN UNA MATRIZ DE 3X3 Y LOS ORDENA DE MANERA ASCENDENTE.MOSTRANDO LA MATRIZ DESORDENADA Y ORDENADA.
#include<conio.h>
#include<iostream.h>
void main()
{
clrscr();
int i,j,k,l;
int a[3][3];
int aux;
cout<<"Introduze tus valores:\n"<<endl;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
cin>>a[i][j];
}
}
cout <<"\nLos valores desordenados son: \n "<<endl;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
cout<<a[i][j]<<" ";//impresion de la matriz desordenada
}
cout<<" \n "<<endl;
}
for(i=0;i<3;i++){//ordenamiento de la matriz por metodo de burbuja
for(j=0;j<3;j++){
if(a[i][j]>a[i][j+1])
{
aux=a[i][j];
a[i][j]=a[i][j+1];
a[i][j+1]=aux;
for(k=0;k<3;k++){
for(l=0;l<3;l++){
if(a[k][l+2]>a[k+1][l])
{
aux=a[k][l+2];
a[k][l+2]=a[k+1][l];
a[k+1][l]=aux;
}
}
}
}
}
}
cout <<"Los valores ordenados de manera ascendente son: \n "<<endl;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
cout<<a[i][j]<<" ";
}
cout<<" \n "<<endl;
}
getch();
}
#include<conio.h>
#include<iostream.h>
void main()
{
clrscr();
int i,j,k,l;
int a[3][3];
int aux;
cout<<"Introduze tus valores:\n"<<endl;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
cin>>a[i][j];
}
}
cout <<"\nLos valores desordenados son: \n "<<endl;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
cout<<a[i][j]<<" ";//impresion de la matriz desordenada
}
cout<<" \n "<<endl;
}
for(i=0;i<3;i++){//ordenamiento de la matriz por metodo de burbuja
for(j=0;j<3;j++){
if(a[i][j]>a[i][j+1])
{
aux=a[i][j];
a[i][j]=a[i][j+1];
a[i][j+1]=aux;
for(k=0;k<3;k++){
for(l=0;l<3;l++){
if(a[k][l+2]>a[k+1][l])
{
aux=a[k][l+2];
a[k][l+2]=a[k+1][l];
a[k+1][l]=aux;
}
}
}
}
}
}
cout <<"Los valores ordenados de manera ascendente son: \n "<<endl;
for(i=0;i<3;i++){
for(j=0;j<3;j++){
cout<<a[i][j]<<" ";
}
cout<<" \n "<<endl;
}
getch();
}
Metodos de ordenamiento (INSERCIÓN)
METODO DE INSERCIÓN
El ordenamiento por inserción (insertion sort en inglés) es una manera muy natural de ordenar para un ser humano, y puede usarse fácilmente para ordenar un mazo de cartas numeradas en forma arbitraria. Requiere O(n²) operaciones para ordenar una lista de n elementos.
Inicialmente se tiene un solo elemento, que obviamente es un conjunto ordenado. Después, cuando hay k elementos ordenados de menor a mayor, se toma el elemento k+1 y se compara con todos los elementos ya ordenados, deteniéndose cuando se encuentra un elemento menor (todos los elementos mayores han sido desplazados una posición a la derecha). En este punto se inserta el elemento k+1 debiendo desplazarse los demás elementos.
PROGRAMA QUE CAPTURA 5 NOMBRES Y EL PROMEDIO DE 3 CALIFICACIONES Y LOS ORDENA DE MANERA ASCENDENTE Y DESCENDENTE CON EL METODO DE LA INSERCIÓN.
#include<conio.h>
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j,k;
int aux;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze el nombre:"<<endl;
cin>>nombre[i];
for(j=0;j<3;j++){
cout<<"calificacion"<<endl;
cin>>cal[i][j];
suma=suma+cal[i][j];
}
prom[i]=suma/3;
}
for(i=1;i<5;i++) //metodo de inserción
{
aux=prom[i];
strcpy(nombreaux,nombre[i]);
for(j=i-1;j>=0;j--)
{
if(aux>prom[j])
{
prom[j+1]=aux;
strcpy(nombre[j+1],nombreaux);
break;
}
else
prom[j+1]=prom[j];
strcpy(nombre[j+1],nombre[j]);
}
if(j==-1)
prom[0]=aux;
strcpy(nombre[0],nombreaux);
}
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j,k;
int aux;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze el nombre:"<<endl;
cin>>nombre[i];
for(j=0;j<3;j++){
cout<<"calificacion"<<endl;
cin>>cal[i][j];
suma=suma+cal[i][j];
}
prom[i]=suma/3;
}
for(i=1;i<5;i++) //metodo de inserción
{
aux=prom[i];
strcpy(nombreaux,nombre[i]);
for(j=i-1;j>=0;j--)
{
if(aux>prom[j])
{
prom[j+1]=aux;
strcpy(nombre[j+1],nombreaux);
break;
}
else
prom[j+1]=prom[j];
strcpy(nombre[j+1],nombre[j]);
}
if(j==-1)
prom[0]=aux;
strcpy(nombre[0],nombreaux);
}
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
Metodos de ordenamiento (SELECCION)
METODO DE SELECCION
El ordenamiento por selección (Selection Sort en inglés) es un algoritmo de ordenamiento que requiere O(n2) operaciones para ordenar una lista de n elementos.
Su funcionamiento es el siguiente:
* Buscar el mínimo elemento de la lista
* Intercambiarlo con el primero
* Buscar el mínimo en el resto de la lista
* Intercambiarlo con el segundo
Y en general:
* Buscar el mínimo elemento entre una posición i y el final de la lista
* Intercambiar el mínimo con el elemento de la posición i
PROGRAMA QUE ORDENA 5 NOMBRES Y EL PROMEDIO DE 3 CALIFICACIONES CON EL METODO DE SELECCION DE MANERA ASCENDENTE Y DESCENDENTE
#include<conio.h>
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j;
int aux,menor;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze el nombre:"<<endl;
cin>>nombre[i];
for(j=0;j<3;j++){
cout<<"calificacion"<<endl;
cin>>cal[i][j];
suma=suma+cal[i][j];
}
prom[i]=suma/3;
}
for(i=0;i<5-1;i++)
{
for(j=i+1,menor=i;j<5;j++)//metodo de seleccion
if(prom[j]<prom[menor]) {
menor=j;
aux=prom[i];
prom[i]=prom[menor];
prom[menor]=aux;
strcpy(nombreaux,nombre[i]);
strcpy(nombre[i],nombre[menor]);
strcpy(nombre[menor],nombreaux);
}
}
clrscr();
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j;
int aux,menor;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze el nombre:"<<endl;
cin>>nombre[i];
for(j=0;j<3;j++){
cout<<"calificacion"<<endl;
cin>>cal[i][j];
suma=suma+cal[i][j];
}
prom[i]=suma/3;
}
for(i=0;i<5-1;i++)
{
for(j=i+1,menor=i;j<5;j++)//metodo de seleccion
if(prom[j]<prom[menor]) {
menor=j;
aux=prom[i];
prom[i]=prom[menor];
prom[menor]=aux;
strcpy(nombreaux,nombre[i]);
strcpy(nombre[i],nombre[menor]);
strcpy(nombre[menor],nombreaux);
}
}
clrscr();
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
Metodos de ordenamiento (BURBUJA)
METODO DE LA BURBUJA
El Ordenamiento de burbuja (Bubble Sort 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.
PROGRAMA QUE CAPTURA 5 NOMBRES Y CALCULA EL PROMEDIO DE 3 CALIFICACIONES Y LOS ORDENA POR NOMBRE DE MANERA ASCENDENTE Y DESCNDENTE.
#include<conio.h>
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j,k;
int aux;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze el nombre:"<<endl;
cin>>nombre[i];
for(j=0;j<3;j++){
cout<<"calificacion"<<endl;
cin>>cal[i][j];
suma=suma+cal[i][j];
}
prom[i]=suma/3;
}
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(prom[j]>prom[j+1])
{
aux=prom[j];
prom[j]=prom[j+1];
prom[j+1]=aux;
strcpy(nombreaux,nombre[j]);//ordenamiento por metodo de la burbuja
strcpy(nombre[j],nombre[j+1]);
strcpy(nombre[j+1],nombreaux);
}
}
}
cout <<"Los promedios ordenados de manera ascendente son: \n"<<endl;
for(i=0;i<5;i++){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
#include<iostream.h>
#include<string.h>
void main()
{
clrscr();
char nombre[5][10];
int cal[5][3];
int suma;
float prom[5];
int i,j,k;
int aux;
char nombreaux[10];
for(i=0;i<5;i++){
suma=0;
cout<<"Introduze el nombre:"<<endl;
cin>>nombre[i];
for(j=0;j<3;j++){
cout<<"calificacion"<<endl;
cin>>cal[i][j];
suma=suma+cal[i][j];
}
prom[i]=suma/3;
}
for(i=0;i<4;i++){
for(j=0;j<4;j++){
if(prom[j]>prom[j+1])
{
aux=prom[j];
prom[j]=prom[j+1];
prom[j+1]=aux;
strcpy(nombreaux,nombre[j]);//ordenamiento por metodo de la burbuja
strcpy(nombre[j],nombre[j+1]);
strcpy(nombre[j+1],nombreaux);
}
}
}
cout <<"Los promedios ordenados de manera ascendente son: \n"<<endl;
for(i=0;i<5;i++){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
cout << "Las promedios ordenados de manera descendente son: \n"<<endl;
for(i=4;i>=0;i--){
cout<<nombre[i]<<" : "<<prom[i]<<endl;
}
getch();
}
Suscribirse a:
Entradas (Atom)