Tema destacado: Suscripción al boletín mensual de elhacker.net
Autor
|
Tema: Mis Programas/Basicos (Leído 77,580 veces)
|
^Tifa^
Desconectado
Mensajes: 2.802
|
Ahhh creo que ya entendi tu punto TheMaker, pensaba que decias como era posible que alguien de 13 supiese C++ ,  en la parte matematica si a pesar de que un nino se pase 16 horas frente a un PC inventando, considero que aunque haga ciertas cosas esto no quiere decir que sepa su funcionamiento o realmente para que sirve, como es el caso de 'for' sobre calculos matematicos, algoritmicos y su entendimiento voy de acuerdo contigo, porke sepa mezclar codigo C de varios tutoriales o ejemplos online o clases recibidas en el colegio no implica que su nivel de analisis matematico vaya en incremento.... aqui es falso. Y es en esta parte del asunto, la parte del entendimiento de 'como funciona y porque' es que los ingenieros con 5 anos de perdida de estudios universitarios y 2 en postgrado, comprenden la razon del porque... mientras el nino de 15 que se pasa 16 horas frente al PC sabe que ocurre pero no sabe el porque. A mi jamas me dieron ningun lenguaje de programacion en el colegio apenas llegue a ver un PC en el colegio cuando tenia 16, y nos poniamos a jugar, no a programar. Aunque reconozco que hay paises donde desde chiquitos se les ensena o al menos se les introduce el lenguaje C a los estudiantes, pertenesco a una fundacion donde su presidente que hoy tiene 45 anos, vivio toda su vida en USA, y en el ano 1980 por ahi cuando el estaba en el colegio y era muy joven en aquel entonces C era el boom! de la informatica, y el explica que en su instituto se les comenzo a introducir a la programacion en C pero por lo general los chicos jovenes prefieren pasarse las 16 horas jugando Final Fanatasy o Nintendo que programando en C vamos hay que ser realistas.... sin embargo hay un minimo de estos ninos digase 2 de cada 10 ninos que aspiran a ser grandes hackers.. y comienzan a pinchar tutoriales de programacion que ven en internet y a bajarse ejemplos de virus, spyware, troyanos y a destrozarlo y pegarlo con otro codigo y terminan haciendo una tremenda bomba atomica de virus... mas sin embargo el verdadero funcionamiento del codigo pocos lo entienden... (por experiencia propia los tutoriales de programacion que hay regados en internet no te explican del todo, como funciona un lenguaje lo comprobe al obtener The complete Guide of C programming de M. Schildlt lo estuve leyendo y dije dios.... cuantos vacios te dejan en internet). El nino en cuestion puede saber programar C++ pero entender 100% que hace cada codigo o como funciona... fuera de los tutoriales vacios online, no creo que pueda expresar mucho.
|
|
|
|
|
En línea
|
|
|
|
|
Karman
|
Yo aprendí a programar cuando tenía esa edad tb, y aunque no teníamos una clase de computación en el colegio, siempre me gustó la computadora (jugaba con una en el trabajo de mi padre  ), pero lo de la programación me llamó mucho la atención cuando en la escuela (en una hora libre) estábamos jugando al "Gorillas" (BASIC) en las viejas 386, y un chico más grande (16,17 años) entró al código del gorillas y modificó los colores de los personajes... la verdad me llamó muchísimo la atención y después de eso empecé a ir mirando el código, y la ayuda del QBasic, recuerdo que no sabía lo que era un bucle, pero igual logré ir modificando cosas, obviamente cosas simples, y mi primer programa (si es que se lo puede llamar así), era un programa de permiso de acceso, que arrancaba al arrancar el PC y si no colocaban un nombre de usuario y contraseña no podían entrar (obviamente que era re fácil de cerrarlo) pero como la mayoría no sabía de las teclas de windows terminé haciéndome la máquina casi para mi (la tenía como reservada...  )... es obvio que un chico de 13 años no entiende lo que es el paradigma imperativo, la teoría algorítmica, eficiencia de código, modularidad, etc, etc... pero eso no significa que no pueda hacer pequeños programas... (yo hice un poker a los 14) lleno de errores y fallas teóricas... pero funcionaba...  S2
|
|
|
|
|
En línea
|
|
|
|
TheMaker
Desconectado
Mensajes: 513
|
Weno os dejo otro programa, en este metes el numerador y el denominador de una fraccion y te da la fraccion irreducible, es decir la misma fraccion pero con el numerador y el denominador primos relativos #include <iostream> using namespace std;
int main(){ char pausa; int numerador,denominador; int mayor,menor,aux,mcd; bool terminar=false; cout<<"Introduce el numerador y el denominador\n"; cin>>numerador>>denominador; while(denominador==0 || numerador==0){ cout<<"El 0 no es numero valido a la hora de realizar la operación\nvuelve a insertar el numerador y el denominador"; cin>>numerador>>denominador; } if(numerador>=denominador){ mayor=numerador; menor=denominador; } if(denominador>numerador){ mayor=denominador; menor=numerador; } if(mayor!=0&&menor!=0){ if(mayor%menor==0){ mcd=menor; } if(mayor%menor!=0){ for(;terminar==false;){ aux=mayor%menor; if(aux!=0){ mayor=menor; menor=aux; } if(aux==0){ terminar=true; } } mcd=menor; } } cout<<endl<<"Numerador = "<<numerador/mcd<<endl<<"denominador = "<<denominador/mcd<<endl; cout<<"\n\nPresiona una tecla para salir\n\n"; cin>>pausa; }
|
|
|
|
|
En línea
|
Gibe money please or I report you
|
|
|
TheMaker
Desconectado
Mensajes: 513
|
weno pongo otro mini-programa más. estew sirve para calcular los multiplos primos de un numero, vamos que lo factoriza: #include<iostream> using namespace std;
int main(){ int numero,div=2,anterior; bool primo=true,acabar=false; do{ cin>>numero;}while(numero<1); do{ acabar=false; div=2; while(numero%div!=0&&div<=numero){ div++; } for(int j=2;j<=div&&acabar==false;j++){ if(div%j==0&&div!=2) primo=false; if(primo==true&&numero%div==0){ cout<<div<<"*"; numero=numero/div; acabar=true; } } }while(numero!=1); cout<<"1\n\n\n"; system("pause"); }
|
|
|
|
|
En línea
|
Gibe money please or I report you
|
|
|
^Tifa^
Desconectado
Mensajes: 2.802
|
No se porque C++ incluye tanta programacion relacionada a matematicas  espero ver poco esa area porque no me gusta la matematica.  Aqui incluyo otro programita que me dio problemas para leer todas las lineas de un archivo y me estuvo bailando con la memoria dinamica  pero bueno finalmente creo que funciona using namespace std; #include <iostream> #include <fstream> #define ANO 1998 #define ANO1 2002 #define ANO2 2005
typedef float numero; typedef char typo; typedef char usuariio; typedef char ubi;
numero precio; typo vehiculo[20]; usuariio cliente[20] = ""; ubi telefono[20] = "";
void agregar(); void automovil(); void observar(); void observar1(); void log(); void menu();
struct perly { char uxer[] ; } data;
struct perly *p = &data;
int main(int argc, char *) { char usuario[6] = "Wanda"; std::cout << "AutoMax Version 0.1" << std::endl; std::cout << "Autor :: Monika" << std::endl; while (argc != 2) { std::cout << "Login : " ; std::cin.getline(p->uxer,6); if (strcmp(p->uxer,usuario) == 0) { std::cout << "Bienvenid@ al sistema " << std::endl; menu(); } else { std::cout << "Acceso Denegado " << std::endl; log(); exit(1); }; } return 0; };
void menu() { short a; do { std::cout << "Que le gustaria realizar " << std::endl; std::cout << "1 - Agregar un nuevo cliente" << std::endl; std::cout << "2 - Agregar un nuevo vehiculo" << std::endl; std::cout << "3 - Ver listado vehiculos" << std::endl; std::cout << "4 - Ver listado de clientes" << std::endl; std::cout << "5 - Salir del programa" << std::endl; fflush(stdout); std::cin >> a; if (a == 5) exit(1); switch(a) { case 1 : agregar(); break; case 2 : automovil(); break; case 3 : observar(); break; case 4 : observar1(); break; default : puts("Usted no ha seleccionado nada, porfavor seleccione algo\n"); break; }; } while (1); };
void log() { ofstream archivo("logs.txt", ios::app); archivo << "Intento Fallido de Entrada\n\n "; archivo.close(); };
void agregar() {
cout << "Inserta el nombre completo del cliente sin espacios ejemplo ""Carlos-Lopez""" << endl ; cin >> cliente ; cout << "Inserte Telefono del cliente sin espacios ejemplo ""809-544-5678""" << endl ; cin >> telefono ; ofstream archivo("cliente.txt") ; archivo << cliente << " || " << telefono << "\n\n"; archivo.close(); } ;
void automovil() { short a; std::cout << " * Introduzca marca del vehiculo sin Espacios : " << std::endl; std::cin >> vehiculo; std::cout << " * Introduzca el precio : " << std::endl ; std::cin >> precio; std::cout << " * Seleccione Año de Fabricacion, 1 - 1998, 2 - 2002 , 3 - 2005 : " << std::endl; std::cin >> a; std::cout << " -------------------------------\n " << std::endl; fflush(stdout); if (a == 1) { ofstream arch("vehiculo.txt", ios::app); arch << " ---------------------- " << "\n" << vehiculo << " || " << precio << " || " << ANO << "\n\n" ; arch.close(); } else if (a == 2) { ofstream arch("vehiculo.txt", ios::app); arch << " ---------------------- " << "\n" << vehiculo << " || " << precio << " || " << ANO1 << "\n\n" ; arch.close(); } else if (a == 3) { ofstream arch("vehiculo.txt", ios::app); arch << " ---------------------- " << "\n" << vehiculo << " || " << precio << " || " << ANO2 << "\n\n" ; arch.close(); }; };
void observar() { ifstream archivo ("vehiculo.txt"); char* buffer = new char[sizeof(archivo)]; if (buffer == 0) { std::cout << "Memoria Insuficiente\n" << std::endl; exit(1); }; while (!archivo.eof() ) { archivo.getline (buffer,sizeof(archivo)); cout << buffer << endl; delete(buffer); } };
void observar1() { { ifstream archivo ("cliente.txt"); char* buffer = (char*) malloc(sizeof(archivo)); if (buffer == 0) { std::cout << "Memoria Insuficiente\n" << std::endl; exit(1); }; while (!archivo.eof() ) { archivo.getline (buffer,sizeof(archivo)); cout << buffer << endl; free(buffer); } } };
|
|
|
|
« Última modificación: 27 Noviembre 2007, 14:10 por ^TiFa^ »
|
En línea
|
|
|
|
^Tifa^
Desconectado
Mensajes: 2.802
|
Que lejos estaba este Hilo, mas programas basicos. #include <stdio.h> //Incluyo este Header para el uso de printf, scanf, fgetc, etc. #include <stdlib.h> //Incluyo este header para el manejo de strings, strcmp, strcat, etc.
//Creamos una estructura, que guarde varias variables dentro de 1 solo nombre. struct datos { char nombres[15]; char marca[20]; char ano[5]; char color[10]; char apellidos[15]; char telefono[20]; char precio[25]; } cliente;
struct datos *p = &cliente; /*Aqui tenemos un puntero, que guarda el valor de cliente, y cliente guarda el valor de todas las variables declaradas en la estructura.*/
//Aqui declaramos todas las funciones a utilizar en el programa. int Menu(); void Agregar(); void Ver(); void Remover();
/*Antes se definio la funcion Menu, pero solo se definio, aqui ya se comienza a agregar que hara esta funcion*/ int Menu() { int a; //Usamos un Bucle do/while para que siempre se repita esto, al menos 1 vez. do { printf("Que desea hacer.\n"); printf("1-Agregar.\n2-Remover.\n3-Ver Clientes.\n4-Salir\n"); scanf("%i", &a); switch(a) { case 1 : Agregar(); break; case 2 : Remover(); break; case 3 : Ver(); break; case 4 : exit(1); break; default : puts("Usted debe seleccionar algo"); system("sleep 02"); } } while (a != 4); /*Aqui termina mi bucle*/ return Menu(); /*Retornamos a Menu siempre al finalizar el bucle*/ };
int main(int argc, char* argv[]) {
printf("%s Cargando .... Espere\n", argv[0]); system("sleep 02");
char a[15], b[15]; char *usuario[2] = {"Monika", "Tifa"}; //Esto son arreglos que guardan 2 datos. char *pass[2] = {"123", "321"};
printf("Login : "); scanf("%s", &a); printf("Password : "); scanf("%s", &b);
//Usamos la funcion strcmp, para comparar si son iguales mi respuesta y el arreglo. if ((strcmp(a,usuario[0])) == 0 && (strcmp(b,pass[0])) == 0) { printf("*****-- Bienvenidos al Sistema ----******\n"); Menu(); } else if ((strcmp(a,usuario[1])) == 0 && (strcmp(b,pass[1])) == 0) { printf("--- Bienvenidos al Sistema ------\n"); Menu(); } //En caso de no ser iguales a cero(cero indica igualdad) pues se deniega el acceso. else { printf("Acceso Denegado.\n"); exit(1); } return 0; };
void Agregar(){ FILE *fp; /*Declaramos un puntero 'archivo' que guarda la direccion en memoria de un archivo que se abrira o creara*/ char a[100]; int c; for (c = 0; c > 3; c++) getchar(); printf("Inserte Nombre Cliente.\n"); scanf("%s", &p->nombres); printf("Inserte Apellido del Cliente.\n"); scanf("%s", &p->apellidos); printf("Inserte telefono.\n"); scanf("%s", &p->telefono); fflush(stdout); //Usamos la funcion fflush para forzar limpiar el buffer de salida. for (c = 0; c > 3; c++) getchar(); /*Damos uso de getchar, para atrapar la tecla 'Enter' del buffer y asi evitar que scanf o gets me salten la siguiente peticion*/ printf("Inserte marca vehiculo.\n"); getchar(); gets(p->marca); printf("Inserte color del vehiculo.\n"); scanf("%s", &p->color); printf("Inserte precio vehiculo.\n"); scanf("%s", &p->precio); fflush(stdout);
fp = fopen("archivo.txt", "a"); //Aqui al puntero 'archivo' le asignamos el archivo.
//Aqui usamos la fucion 'ferror' que verifica la existencia o no del archivo. if(ferror(fp)) { printf("No se pudo abrir archivo\n"); exit(1); } else { fputs("\n", fp); //Usamos la funcion fputs, para escribir dentro del archivo. fputs(p->nombres, fp); /*Accesamos a las variables de nuestra estructura, con el puntero ya antes declarado al inicio.*/ fputs(" ", fp); fputs(p->apellidos, fp); fputs("\n", fp); fputs(p->telefono, fp); fputs("\n", fp); fputs(p->precio, fp); fputs("\n", fp); fputs(p->marca, fp); fputs("\n", fp); fputs(p->color, fp); fputs("\n", fp); fflush(fp); //Usamos fflush para forzar los datos del buffer a escrbirse al archivo. } };
void Remover() { char a[10];
printf("Inserte archivo a Eliminar.\n"); scanf("%s", a); /*Aqui podemos obviar el delimitador '&' no aplica en variables tipo numerico*/ if (remove(a)) { /*Funcion remove busca y borra el archivo, sino lo encuentra lanza error*/ printf("Error archivo no existe.\n"); Menu(); //Retornamos a Menu. } };
void Ver() { FILE *fp; char a;
if (!(fp = fopen("archivo.txt", "r"))) { printf("Error:: No se puede abrir\n"); Menu(); } else { /*fgetc es una funcion para leer 1 caracter. Con un bucle 'while' accesamos a leer todas las frases leyendo caracter por caracter*/ while ((a = fgetc(fp)) != EOF) { printf("%c", a); //Imprimimos todas las frases leidas al flujo de salida. } system("sleep 02"); } fclose(fp); //Cerramos el archivo }; Texto modificado a Peticion de B19  , no me gusta mucho comentar las cosas, siempre he dicho que los comentarios lo usan malos programadores que no saben o no recuerdan para que sirve cada cosa.
|
|
|
|
« Última modificación: 30 Diciembre 2007, 16:12 por ^TiFa^ »
|
En línea
|
|
|
|
K-19
Desconectado
Mensajes: 425
Sarah Wayne
|
estaría de lujo si comentaseis cada una de las lineas de los programas, asi es como se aprende y como yo aprendi medianamente visual basic.
|
|
|
|
|
En línea
|
|
|
|
|
|