--------------- Lo de arriba es publicidad -----------------
Estos son algunos codigos que he ido desarrollando mientras
contestaba en Yahoo preguntas / repuestas
Estan para ser corridos en Dev C++ Algunos proyectos necesitaran
del pack conio2 y otros del de graphics, ambos disponibles es esta
pagina en la seccion de compilador Dev C++ en forma ya
instalada, y para instalar.
Los que estan en carpetas, son proyectos con sus archivos (y en
algunos casos con variantes del mismo) los *.cpp sueltos pueden
andar sin necesidad de un proyecto.
http://www.4shared.com/rar/hWL0Yw1e/cppces.html
Encontrar cuanrtas veces se repite una frase en una texto

/*¿me pueden dar el codigo de un programa en c++ que genere la siguiente serie: 1 3 4 7 11 18 29? */ #include<iostream> #include<iomanip>
using namespace std; int a, b, c, tope; int main() { a=1; b=3;
cout<<"Ingresa valor tope: "; cin>>tope;
cout<<setw(4)<<a;
cout<<setw(4)<<b;
for( ; ; )
{
c = a + b;
a = b;
b = c;
if (c > tope) break;
cout<<setw(4)<<c;
}
cout<<endl;
cin.get(); cin.get();
return 0;
}
-------------------------------------------------------------------------------------
Codigo para ordenar
#include <iostream>
#include <iomanip>
using namespace std;
void orden( int *, const int ); // prototipo
void swap( int * const, int * const ); // prototipo
int main()
{
const int nSize = 10;
int a[ nSize ] = { 3, 9, 14, 27, 18, 154, 8, 6, 74, 33 };
cout << "\nElementos a ordenar\n";
for ( int j = 0; j < nSize; j++ )
cout << setw( 5 ) << a[ j ];
orden( a, nSize ); // ordena el arreglo
cout << "\nElementos ordenados\n";
for ( int j = 0; j < nSize; j++ )
cout << setw( 5 ) << a[ j ];
cout << endl;
system("PAUSE");
return 0; // indica terminación exitosa
}
void orden( int *matriz, const int nSize )
{
for ( int pasada = 0; pasada < nSize - 1; pasada++ )
{
for ( int k = 0; k < nSize - 1; k++ )
{
if ( matriz[ k ] > matriz[ k + 1 ] )
{
swap( &matriz[ k ], &matriz[ k + 1 ] );
}
}
}
}
void swap( int * const ptrElemento1, int * const ptrElemento2 )
{
int mantiene = *ptrElemento1;
*ptrElemento1 = *ptrElemento2;
*ptrElemento2 = mantiene;
}
Solicitud de prestamo y calculo de cuotas, presentacion de un informe
#include <stdio.h>
#include <stdlib.h>
void llenaplan();
void cheqcli();
void comprobante(int nplan, int nreg);
int registro(int p);
FILE *arch;
struct plan{
char tf;
float inmin;
float inmax;
int ft;
int meses;
float interez;
int freeseg;
}planes[4];
struct cliente{
char ape[30];
char name[30];
char dir[30];
char DNI[10];
char Tel[15];
int np;
float monto;
}cli[100];
int main(){
llenaplan();
cheqcli();
return 0;
}
void llenaplan(){
planes[0].tf= 's';
planes[0].inmin = 30000;
planes[0].inmax = 0;
planes[0].ft = 35;
planes[0].meses = 24;
planes[0].interez = 0;
planes[0].freeseg = 24;
planes[1].tf= 'n';
planes[1].inmin = 30000;
planes[1].inmax = 0;
planes[1].ft = 50;
planes[1].meses = 12;
planes[1].interez = 0;
planes[1].freeseg = -12;
planes[2].tf= 's';
planes[2].inmin = 15000;
planes[2].inmax = 30000;
planes[2].ft = 35;
planes[2].meses = 36;
planes[2].interez = 0;
planes[2].freeseg = -36;
planes[3].tf= 'n';
planes[3].inmin = 15000;
planes[3].inmax = 30000;
planes[3].ft = 50;
planes[3].meses = 12;
planes[3].interez = 4;
planes[3].freeseg = -12;
}
void cheqcli(){
char sn;
float ingreso;
printf("Este cliente tiene sueldo fijo? (s/n): ");
scanf("%c", &sn);
fflush(stdin);
printf("Cargue ingresos del Cliente: ");
scanf("%f", &ingreso);
fflush(stdin);
if(ingreso < 15000)
{
printf("\nInforme al cliente que no hay plan de credito para el");
getchar();
}
else
{
if (sn == 's' || sn == 'S')
{
if(ingreso > 29999) comprobante (0, registro(0));
if(ingreso < 30000) comprobante (2, registro(2));
}
else
{
if(ingreso > 29999) comprobante (1, registro(1));
if(ingreso < 30000) comprobante (3, registro(3));
}
}}
int registro(int p){
int n, f;
arch=fopen("CLIENTES.DAT", "r+");
if(arch == NULL)
{
printf("ERROR EN APERTURA DE ARCHIVO, Se intentara crer el archivo");
arch=fopen("CLIENTES.DAT", "w+");
fclose(arch);
getchar();
exit(1);
}
else
{
fread(&cli, sizeof(cli), 1, arch);
for(n=0;n<100;n++)if(cli[n].ape[0]== '\0') break;
printf("Ingrese Apellido del Cliente: "); gets(cli[n].ape);
printf("Ingrese Nombre/s del Cliente: "); gets(cli[n].name);
printf("Ingrese Domicilio del Cliente "); gets(cli[n].dir);
printf("Ingrese Nro del DNI del Cliente: "); gets(cli[n].DNI);
printf("Ingrese Telefono del Cliente: "); gets(cli[n].Tel);
cli[n].np = p;
printf("Monto total de la compra: "); scanf("%f", & cli[n].monto);
fflush(stdin);
fwrite(&cli, sizeof(cli), 1, arch);
fclose(arch);
}
return n;
}
void comprobante(int nplan, int nreg){
char buffer[500];
char dat[200];
float aux = cli[nreg].monto - ((cli[nreg].monto * planes[nplan].ft / 100));
float cuota = (planes[nplan].meses * planes[nplan].interez)/100;
cuota = cuota + aux ;
cuota = (cuota + aux )/planes[nplan].meses;
sprintf(dat, "%s%s%s%s%s%s",
"\n\nINFORME DEL TRAMITE DE CREDITO DEL CLIENTE: \nApellido y nombre: ",
cli[nreg].ape,"; ", cli[nreg].name, "\nDireccion: ", cli[nreg].dir);
sprintf(buffer, "%s%s%6.2f%s%i%s%6.2f%s%i%s%d%s%6.2f%s%i%s", dat,
"\nMonto Total de la Compra: ", cli[nreg].monto, "; Segun el Plan: ",
cli[nreg].np, "\nMonto Financiado: ", aux, ";\nEn ",planes[nplan].meses,
" Cuotas Mensuales con un Interez de: ", int(planes[nplan].interez) ,
"\% mensules\nImporte de la Cuota Mensual: ", cuota,
"\nBonificcion del Seguro Obligatorio:\nSi es (-) Sin bonificacion y a cargo del cliente\nMeses: [",
planes[nplan].freeseg,"]\n\n- - - - - - FIN DEL INFORME - - - - - - -");
printf("%s", buffer);
getchar();
}
-----------------------------------------------------------------------------------------
Este codigo muestra un archivo de texto corto (no mas de 20 renglones) y lo baja y lo sube
en la consola. En este caso uso el mismo codigo como texto ya que el archivo mostrado es
movetxt.cpp, pero puede ser cualquier texto en cualquier color de letra y de fondo, lo que
se hace poniendo el texto en la misma carpeta donde esta el ejecutable, y modificando en la
orden COLOR los valores que son dos numeros hexadecimales, 0,1....F uno para la letra y otro
para el fondo
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
int i, j;
main(){
system("MODE CON: LINES=50 COLS=100");
for (i=0; i<30; i++){
system("CLS");
j=i;
for(j=0 ; j< i; j++){
printf("\n\t\r"); //ir hacia abjo
} /* v pone color e imprime texto*/
system("COLOR 0A"); system("TYPE MOVETXT.CPP");
Sleep(300); }
for (i=0; i < 30; i++){
printf("\n"); //ir hacia arriba
Sleep(300);
}getchar();
}/*este codigo de llama MOVETXT.CPP*/
Es algo simpático de ver aunque no tiene mucha utilidad practica...
-----------------------------------------------------------------------------