Blog para dar informacion sobre la programacion y otros campos relacionados con la computacion
jueves, 17 de mayo de 2012
Sobre Carga de Funciones
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
int multi(int a,int b);
void multi(int a, char b[15]);
void multi(char a[15],char b[15]);
int main()
{
cout<< multi(5,20)<<endl;
multi(19,"daniel");
multi("daniel","Borracho");
getch();
}
int multi(int a,int b)
{return (a*b);
}
void multi(int a,char b[15])
{ cout<<b<<" tiene "<<a<<" anos "<<endl;
return;
}
void multi(char a[15],char b [15])
{ cout<<a<<" Es un "<<b;
return;
}
Programa 1.2
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
int main()
{
char superheroes[10][25]={"Acuaman", "Superman","Megaman","Belzzemon","Shaman", "Bleach", "Perry", "Zorra","Mazinger","Meteoro"};
char nombre[10][25]={"Daniel","Jose","Juan","Ricardo","Teto","Paul","Pulpo","Pepsi","Cocacola","Frescolita"};
char apellido[10][25]={"Perez","Lopez","Medina","Aparicio","Yendiz","Valero","Mora","Romero","Rojas","Peligro"};
int cedula[10]={4587450,5487345,6968295,8457563,1458735,4781549,1241587,1245184,3619825,3251765};
int telefono[10]={1111,5555,7777,9999,7897,4444,8888,3333,2222,6666};
char ax[25];
char ax1[25];
char ax2[25];
int ax3, ax4, x;
int opc;
do
{
cout<<"Bienvenidos"<<endl;
cout<<"Ordenamientos :D "<<endl;
cout<<" 1 -----> Por Nombre "<<endl;
cout<<" 2 -----> Por SuperHeroe "<<endl;
cout<<" 3 -----> Por Apellido "<<endl;
cout<<" 4 -----> Por Cedula "<<endl;
cout<<" 5 -----> Telefono " <<endl;
cout<<" 0 <---> Salir "<<endl;
cout<<" Indique opcion: ";
cin>>opc;
gotoxy(1,12);cout<<"<Codigo>---<Sobrenombre>--<Nombre>-----<Apellido>---<Cedula>---<Telefono>";
for(x=0;x<10;x++)
{
gotoxy(4,14+x);cout<<(x+1);
gotoxy(13,14+x);cout<<superheroes[x];
gotoxy(28,14+x);cout<< nombre[x];
gotoxy(41,14+x);cout<< apellido[x];
gotoxy(54,14+x);cout<< cedula[x];
gotoxy(65,14+x);cout<< telefono[x];
}
gotoxy(1,25);cout<<"=========================================================================";
if(opc==2) //orden por superheroe
{
for(int k=0;k<10;k++)
{ for(int b=0;b<10;b++)
{
if(strcmp(superheroes[k],superheroes[b])>1)
{
//ordenando supernombre
strcpy(ax,superheroes[k]);
strcpy(superheroes[k],superheroes[b]);
strcpy(superheroes[b],ax);
//ordenando nombre
strcpy(ax1,nombre[k]);
strcpy(nombre[k],nombre[b]);
strcpy(nombre[b],ax1);
//ordenando apellido
strcpy(ax2,apellido[k]);
strcpy(apellido[k],apellido[b]);
strcpy(apellido[b],ax2);
//ordenando cedulas
ax3=cedula[k];
cedula[k]=cedula[b];
cedula[b]=ax3;
//ordenando telefonos
ax4=telefono[k];
telefono[k]=telefono[b];
telefono[b]=ax4;
}//cierre if
}//cierre for interno
}//cierre for externo
}//cierre if
if(opc==1)//por nombre
{
for(int k=0;k<10;k++)
{ for(int b=0;b<10;b++)
{
if(strcmp(nombre[k],nombre[b])>1)
{
//ordenando supernombre
strcpy(ax,superheroes[k]);
strcpy(superheroes[k],superheroes[b]);
strcpy(superheroes[b],ax);
//ordenando nombre
strcpy(ax1,nombre[k]);
strcpy(nombre[k],nombre[b]);
strcpy(nombre[b],ax1);
//ordenando apellido
strcpy(ax2,apellido[k]);
strcpy(apellido[k],apellido[b]);
strcpy(apellido[b],ax2);
//ordenando cedulas
ax3=cedula[k];
cedula[k]=cedula[b];
cedula[b]=ax3;
//ordenando telefonos
ax4=telefono[k];
telefono[k]=telefono[b];
telefono[b]=ax4;
}//cierre if
}//cierre for interno
}//cierre for externo
}//cierre if
if(opc==3)//por apellido
{
for(int k=0;k<10;k++)
{ for(int b=0;b<10;b++)
{
if(strcmp(apellido[k],apellido[b])>1)
{
//ordenando supernombre
strcpy(ax,superheroes[k]);
strcpy(superheroes[k],superheroes[b]);
strcpy(superheroes[b],ax);
//ordenando nombre
strcpy(ax1,nombre[k]);
strcpy(nombre[k],nombre[b]);
strcpy(nombre[b],ax1);
//ordenando apellido
strcpy(ax2,apellido[k]);
strcpy(apellido[k],apellido[b]);
strcpy(apellido[b],ax2);
//ordenando cedulas
ax3=cedula[k];
cedula[k]=cedula[b];
cedula[b]=ax3;
//ordenando telefonos
ax4=telefono[k];
telefono[k]=telefono[b];
telefono[b]=ax4;
}//cierre if
}//cierre for interno
}//cierre for externo
}//cierre if
if(opc==4)//por cedula
{
for(int k=0;k<10;k++)
{ for(int b=0;b<10;b++)
{
if(cedula[k]>cedula[b])
{
//ordenando supernombre
strcpy(ax,superheroes[k]);
strcpy(superheroes[k],superheroes[b]);
strcpy(superheroes[b],ax);
//ordenando nombre
strcpy(ax1,nombre[k]);
strcpy(nombre[k],nombre[b]);
strcpy(nombre[b],ax1);
//ordenando apellido
strcpy(ax2,apellido[k]);
strcpy(apellido[k],apellido[b]);
strcpy(apellido[b],ax2);
//ordenando cedulas
ax3=cedula[k];
cedula[k]=cedula[b];
cedula[b]=ax3;
//ordenando telefonos
ax4=telefono[k];
telefono[k]=telefono[b];
telefono[b]=ax4;
}//cierre if
}//cierre for interno
}//cierre for externo
}//cierre if
if(opc==5)//por telefono
{
for(int k=0;k<10;k++)
{ for(int b=0;b<10;b++)
{
if(telefono[k]>telefono[b])
{
//ordenando supernombre
strcpy(ax,superheroes[k]);
strcpy(superheroes[k],superheroes[b]);
strcpy(superheroes[b],ax);
//ordenando nombre
strcpy(ax1,nombre[k]);
strcpy(nombre[k],nombre[b]);
strcpy(nombre[b],ax1);
//ordenando apellido
strcpy(ax2,apellido[k]);
strcpy(apellido[k],apellido[b]);
strcpy(apellido[b],ax2);
//ordenando cedulas
ax3=cedula[k];
cedula[k]=cedula[b];
cedula[b]=ax3;
//ordenando telefonos
ax4=telefono[k];
telefono[k]=telefono[b];
telefono[b]=ax4;
}//cierre if
}//cierre for interno
}//cierre for externo
}//cierre if
//////////////////////////////////////////////////////////
gotoxy(1,27);cout<<"<Codigo>---<Sobrenombre>--<Nombre>-----<Apellido>---<Cedula>---<Telefono>";
for(x=0;x<10;x++)
{
gotoxy(4,28+x);cout<<(x+1);
gotoxy(13,28+x);cout<<superheroes[x];
gotoxy(28,28+x);cout<< nombre[x];
gotoxy(41,28+x);cout<< apellido[x];
gotoxy(54,28+x);cout<< cedula[x];
gotoxy(65,28+x);cout<< telefono[x];
}
getch();
clrscr();
}while(true);
}
Programa : Palindromo
#include <conio.h>
#include <stdio.h>
#include <iostream.h>
#include <string.h>
int main ()
{
char palabra[15];
char ax[15];
int i,n;
cout<<"Ingrese Palabra"<<endl;
gets(palabra);
n=strlen(palabra);
//invierte la cadena y la pega en la otra en orden inverso
for(i=0;i<n;i++)
{ax[i]=palabra[n-1-i];
}ax[n]=NULL;
if(strcmp(palabra,ax)==0)
cout<<"La palabra "<<palabra<<", Si es Palindromo"<<endl;
else
cout<<"La palabra "<<palabra<<", NO es Palindromo"<<endl;
cout<<palabra<<"=="<<ax;
getch();
}
numeros aleatorios
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void crear(int a[30]);
void mostrar(int a[30]);
int main()
{
int opc,a[30],sw=0;
srand(time(0));
do
{
cout<<"Bienvenido"<<endl;
cout<<" 1 ------> Crear Numeros "<<endl;
if(sw==0)
cout<<endl;
else
cout<<" 2 ------> Mostrar Numeros "<<endl;
cout<<" 3 ------> exit "<<endl;
cout<<" --------->";cin>>opc;
if(opc==1)
{
crear(a); sw=1;
}
if(opc==2)
{
mostrar(a);
}
getch();
clrscr();
}while(opc!=3);
}
void crear( int a[30])
{
for( int i=0;i<30;i++)
{ a[i]=rand()%99;
}
}
void mostrar(int a[30])
{
for(int i=0;i<30;i++)
{
cout<<a[i]<<", ";
if((i+1)%6==0)
cout<<endl<<endl;
}
}
programa de Ordenamiento y busqueda
#include<conio.h>
#include<stdio.h>
#include<iostream.h>
struct empleados
{
char nombre[10];
char apellido[10];
int cedula;
int salario;
}power[10];
void leer(int);
void buscar(int);
int main()
{
int opc,n=0;
do{
cout<<"Hola apachurra el star"<<endl;
cout<<" APachurra el 1"<<endl;
cout<<" Apachurra el 2"<<endl;
cout<<" papurrin el 0"<<endl;
cout<<" por que >>>>>>>"; cin>>opc;
switch(opc)
{
case 1:leer(n); n++; break;
case 2: buscar(n); break;
default: cout<<"Ingreso un valor no valido";
}
getch(); clrscr();
}while(opc!=0);
}
void leer(int n)
{
cout<<"ingrese nombres ";
cin>>power[n].nombre;
cout<<"ingrese apellido ";
cin>>power[n].apellido;
cout<<"ingrese cedula ";
cin>>power[n].cedula;
cout<<"ingrese salario ";
cin>>power[n].salario;
}
void buscar(int n)
{
int mayor,menor;
mayor=menor=power[0].salario;
for(int i=0;i<n;i++)
{
if(mayor<power[i].salario)
{ mayor=power[i].salario;}
if(menor>power[i].salario)
{ menor=power[i].salario; }
}
cout<<"El Salario mayor es : "<< mayor<<endl;
cout<<"El Salario Menor es : "<< menor<<endl;
}
Programa : contiene busqueda y ordenamiento
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
const int n=5;
void ingrese(char[n][15],int [n]);
void apro_repro(int[n],int);
void burbuja(char[n][15],int[n]);
void seleccion(char[n][15],int[n]);
void insercion(char[n][15],int[n]);
void binaria(char[n][15],int[n]);
int main()
{
int opc,a;
char nombres[n][15];
int notas[n];
do{
gotoxy(25,3); cout<<" Bienvenido ";
gotoxy(25,5); cout<<"Escoja La Opcion";
gotoxy(20,6); cout<<" 1----> Ingrese Alumnos";
gotoxy(20,7); cout<<" 2----> Ordenamientos";
gotoxy(20,8); cout<<" 3----> Alumnos Aprobados";
gotoxy(20,9); cout<<" 4----> Ingrese Reprobados";
gotoxy(20,10);cout<<" 5----> Busqueda Binaria";
gotoxy(20,12);cout<<" ----> Leer Opcion"; gotoxy(40,12); cin>>opc;
if(opc==1)
{
ingrese(nombres,notas);
}
if(opc==2)
{ cout<<endl;
for(int i=0;i<n;i++)
cout<<notas[i]<<", "<<nombres[i]<<endl;
cout<<endl<<endl;
cout<<"Por Cual Metodo desea Ordenar"<<endl;
cout<<" 1 ----> Por Intercambio"<<endl;
cout<<" 2 ----> Por Seleccion "<<endl;
cout<<" 3 ----> Por Inserccion"<<endl;
cout<<" Leer opcion ---->"; cin>>a;
if(a==1)
{ burbuja(nombres,notas);}
if(a==2)
{ seleccion(nombres,notas);}
if(a==3)
{insercion(nombres,notas);}
}
if(opc==3)
{ apro_repro(notas,1);
}
if(opc==4)
{ apro_repro(notas,2);
}
if(opc==5)
{ binaria(nombres,notas);}
getch();
clrscr();
}while(opc!=5);
}
// La Funcion Ingrese(), sirve para insertar las notas y nombres en el vector.
void ingrese(char nombre[n][15], int notas[n])
{
for(int i=0;i<n;i++)
{ cout<<"Ingrese Nombre del Alumno: ";
cin>>nombre[i];
cout<<"Ingrese Nota del Alumno, "<<nombre[i]<<" : ";
cin>>notas[i];}
}
// La funcion apro_repro(),sirve para mostrar los alumnos reprobados y aprobados y el promedio de cada uno
void apro_repro(int notas[n], int opc)
{
int aprobados,reprobados,a,x;
aprobados=reprobados=a=x=0;
for(int i=0;i<n;i++)
{ if(notas[i]<5)
{ reprobados++;
x=x+notas[i];
}
else
{aprobados++;
a=a+notas[i]; }
}
if(opc==1)
{
cout<<" La cantidad de aprobados es: "<<aprobados<<endl;
cout<<" El promedio de aprobados es: "<<(a/aprobados)<<" pts "<<endl; }
if(opc==2)
{
cout<<" La cantidad de reprobados es: "<<reprobados<<endl;
cout<<" El promedio de reprobados es: "<<(x/reprobados)<<" pts "<<endl;}
}
// funcion burbuja(), sirve para un ordenamiento sencillo.
void burbuja(char nombres[n][15],int notas[n])
{
char ax[15];
int j, i,aux;
for(i=0;i<n-1;i++)
{ for(j=0;j<n-1;j++)
{ if(notas[j]>notas[j+1])
{
aux=notas[j];
notas[j]=notas[j+1];
notas[j+1]=aux;
strcpy(ax,nombres[j]);
strcpy(nombres[j], nombres[j+1]);
strcpy(nombres[j+1],ax);
}
}
}
for(i=0;i<n;i++)
cout<<nombres[i]<<", "<<notas[i]<<endl;
}
// funcion seleccion(), sirve para un ordenamiento selectivo basado en los minimos.
void seleccion(char nombres [n][15],int notas [n])
{
int aux,i,j,minimo;
char aux1[15];
for(i=0;i<n-1;i++)
{
minimo=i;
for(j=i+1;j<n;j++)
{
if(notas[j]<notas[minimo])
{minimo=j; }
}
//intercambio de notas
aux=notas[i];
notas[i]=notas[minimo];
notas[minimo]=aux;
//intercambio de nombres
strcpy(aux1,nombres[i]);
strcpy(nombres[i],nombres[minimo]);
strcpy (nombres[minimo],aux1);
}
for(i=0;i<n;i++)
cout<<nombres[i]<<", "<<notas[i]<<endl;
}
void insercion(char nombres [n][15],int notas [n])
{
char aux1[15];
int i,k,aux;
bool band=false;
for (k=1;k < n; k++){
aux=notas[k];
strcpy(aux1,nombres[k]);
i=k-1;
band=false;
while( i>=0 && !band )
{ if(aux < notas[i]){
notas[i+1]=notas[i];
strcpy(nombres[i+1],nombres[i]);
i--;
}
else
{ band=true; }
}
notas[i+1]=aux;
strcpy(nombres[i+1],aux1);
}
for(i=0;i<n;i++)
cout<<nombres[i]<<", "<<notas[i]<<endl;
}
// funcion Binanria(), sirve para hacer una busqueda de un dato, se necesita que este ordenada.... =D
void binaria(char nombres [n][15],int notas [n])
{
int dato,centro,inferior,superior;
inferior=0;
superior=n-1;
cout<<"Ingrese Nota a Buscar"<<endl;
cin>>dato;
while(inferior<=superior)
{
centro=((superior-inferior)/2+inferior);
if(notas[centro]==dato)
{ cout<<"Alumno: "<<nombres[centro]<<", nota: "<< notas[centro]<<endl;
return;
}
else
{if(dato<notas[centro])
{ superior = centro - 1;}
else
{ inferior= centro+1; }
}
}
cout<<"No se encontro esa nota";
}
getch();
}
viernes, 4 de mayo de 2012
Herramientas Para Diseño de Algoritmos
Diagrama de Flujo (Flowchart)
Es una técnica para representar algoritmos que utiliza símbolos
estándar y que tienen los pasos del algoritmo escritos en
dichos símbolos, unidos por flechas, denominados líneas de flujos, que Herramientas Para Diseño de Algoritmos indican la secuencia en que se deben ejecutar.
Diseño del Algoritmo - Ejemplo Pseudocodigo
Área Del Triangulo
Var Real : base, altura, superficie
1. Inicio
2. Escribir (“Indique la base del triangulo”)
Herramientas Para Diseño de Algoritmos
3. Leer (base)
4. Escribir (“Indique la altura”)
5. Leer (altura)
6. superficie ← base * altura / 2
7. Escribir (“La superficie del triangulo es : ”, superficie)
8. fin
Diseño de un algoritmo
Tipos de Datos
Datos Lógicos:
Estos tipos de datos solo pueden tomar dos valores: verdadero
(TRUE) y falso (FALSE). Tienen la característica de formarse a partir de operaciones lógicas y relacionales. Estos valores no se pueden leer del teclado, pero si se pueden imprimir.
Diseño de un algoritmo
Tipos de Datos
Datos Lógicos:
Son conocidos también como Booleanos, en honor a George Bool,matemático Inglés (1815 - 1864), cuya teoría conocida como elálgebra de Bool permitió el desarrollo matemático del algebra binaria y a partir de aquí del álgebra de conmutación, base de la representación de circuitos lógicos.
Datos Lógicos:
Son conocidos también como Booleanos, en honor a George Bool,matemático Inglés (1815 - 1864), cuya teoría conocida como elálgebra de Bool permitió el desarrollo matemático del algebra binaria y a partir de aquí del álgebra de conmutación, base de la representación de circuitos lógicos.
Diseño de un algoritmo
Tipos De Datos Alfanuméricos:
– ASCII (Código Estándar Americano de Intercambio de Información), 27
bits y 28 bits.
– EBCDIC (Código de Información Decimal Codificado en Binario
Extendido), “Mainframe” de IBM, 8bits.
– UNICODE El término Unicode proviene de los tres objetivos perseguidos:
universalidad, uniformidad y unicidad. Emplea 16 bits
Diseño de un algoritmo
Tipos de Datos
Datos Alfanuméricos:
Estos almacenan los llamados caracteres alfanuméricos
Entre estos tenemos:
• Caracteres alfabéticos: letras de la A – Z, ya sean
mayúsculas o minúsculas.
• Caracteres numéricos: Los dígitos del 0 – 9.
• Caracteres especiales: ( ),* , & , : , ; , _ , - , entre otros.
Datos Alfanuméricos:
Estos almacenan los llamados caracteres alfanuméricos
Entre estos tenemos:
• Caracteres alfabéticos: letras de la A – Z, ya sean
mayúsculas o minúsculas.
• Caracteres numéricos: Los dígitos del 0 – 9.
• Caracteres especiales: ( ),* , & , : , ; , _ , - , entre otros.
Diseño de un algoritmo
Tipos de Datos
Datos Numéricos:
Enteros : Son datos que pertenecen al conjunto de los
números enteros, por tanto pueden ser datos enteros
positivos y datos enteros negativos. Cuando se omite el
signo se asume que el numero es positivo.
Ejemplo:
1
743
5280
32767
Datos Numéricos:
Enteros : Son datos que pertenecen al conjunto de los
números enteros, por tanto pueden ser datos enteros
positivos y datos enteros negativos. Cuando se omite el
signo se asume que el numero es positivo.
Ejemplo:
1
743
5280
32767
Diseño de un algoritmo
Tipos de Datos
Numéricos:
datos que representan cantidades, y con ellos, se pueden
realizar todas las operaciones aritméticas y relacionales
aplicables a los números.
Pueden ser :
» Enteros
» Reales
Numéricos:
datos que representan cantidades, y con ellos, se pueden
realizar todas las operaciones aritméticas y relacionales
aplicables a los números.
Pueden ser :
» Enteros
» Reales
Diseño de un algoritmo
Tipos de Datos
Es la forma general que tomará un conjunto
de elementos que son datos de características similares. El
tipo determina como se representara internamente los datos
y las operaciones que podrán realizarse sobre ellos.
Tipos de Datos
Es la forma general que tomará un conjunto
de elementos que son datos de características similares. El
tipo determina como se representara internamente los datos
y las operaciones que podrán realizarse sobre ellos.
Tipos de Datos
- Alfanuméricos
- Lógicos
- Numéricos
Diseño del Algoritmo
Identificadores
Como regla general, todos los identificadores deben ser
declarados antes de ser usados, aconsejándose nombres
que den idea de su uso.
Ejemplo:
Sueldo } Indique sueldo de un trabajador
Trabajo
Diseño del Algoritmo
Identificadores
Son nombres que se utilizan en los algoritmos y programas
para referenciar a los distintos elementos que utilizan, ya sean
objetos o procesos.
Ejemplo :
- Luis C.I: 4.567.890
- Maria
- Rosa
Están formados por números, letras y otros caracteres.
Generalmente no pueden contener espacios en blanco ni
carácter acentuado y debe comenzar siempre por una letra.
Ejemplo
CORRECTO
Nota, nota, Nota1
Saldo_Neto
numero
INCORRECTO
1nota
Saldo Neto
Numero-1
ALGORITMOS : Clasificación
Algoritmos Cuantitativos
Son pasos o acciones que involucran cálculos numéricospara llegar a un resultado.
Ejemplo:
- - Ecuación de Segundo Grado
- - Solución Factorial
ALGORITMOS : Clasificación
Algoritmos Cualitativos
Son pasos o acciones descritos por palabras para llegar
a la solución de un problema
Ejemplo
- - Receta de cocina
- - Búsqueda de una Dirección
- - El Montaje de una llanta
Suscribirse a:
Entradas (Atom)