elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Temas
Páginas: 1 [2] 3 4 5
11  Programación / Programación C/C++ / [Codigo] Binario a Decimal en: 18 Mayo 2015, 18:18 pm
 Les dejo un código que hice, pasa un binario a decimal  :D

Saludos!

Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::endl;
  4. using std::cout;
  5.  
  6. #include <cmath>
  7. using std::pow;
  8.  
  9. int main()
  10. {
  11. long int binario;
  12. long int decimal=0;
  13. long int auxBinario;
  14. int resto;
  15. bool respuesta= true;
  16.  
  17.  
  18. cout <<"Binario: ";
  19. cin  >> binario;
  20.  
  21. auxBinario= binario;
  22.  
  23. for (int contador=0; pow(10.,contador) < binario; contador++)
  24. {
  25. resto= auxBinario % 10;
  26. auxBinario/= 10;
  27.  
  28. switch (resto)
  29. {
  30. case 0:
  31. decimal+= (resto * pow(2.0,contador));
  32. break;
  33.  
  34. case 1:
  35. decimal+= (resto * pow(2.0,contador));
  36. break;
  37.  
  38. default:
  39. respuesta= false;
  40. break;
  41. }
  42.  
  43. }
  44.  
  45. if (respuesta == true)
  46. {
  47. cout <<"\nEl binario " <<binario <<" es " <<decimal <<endl;
  48. }
  49. else
  50. {
  51. cout <<"\nEl numero ingresado no es un binario!\n";
  52. }
  53. cin.get();
  54. cin.get();
  55. return 0;
  56. }
12  Programación / Programación C/C++ / [Solucionado] Problema en un for con variables en: 18 Mayo 2015, 17:10 pm
 Hola gente, tengo un problema en un for, dejo el codigo y el error que me tira :)

Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4.  
  5. int main()
  6. {
  7. // Variables
  8. int palindromo;
  9. bool respuesta= true;
  10.  
  11.  
  12. cout <<"palindromo: ";
  13. cin >> palindromo;
  14.  
  15.  
  16. for(int divisorMayor=10000,int divisorMenor=10; divisorMenor <= 10000,divisorMayor >= 10; divisorMenor*=10, divisorMayor/=10)
  17. {
  18. if ((palindromo / divisorMayor) != (palindromo / divisorMenor))
  19. {
  20. respuesta= false;
  21. break;
  22. }
  23.  
  24. palindromo%= divisorMayor;
  25. palindromo/= divisorMenor;
  26. }
  27.  
  28. if (respuesta == true)
  29. {
  30. cout <<"\nEl numero es un palindromo.";
  31. }
  32.  
  33. else
  34. {
  35. cout <<"\nEl numero no es un palindromo.";
  36. }
  37.  
  38. cin.get();
  39. return 0;
  40. }

ERROR:

Citar
1>------ Operación Generar iniciada: proyecto: Deitel-Ejer4.26, configuración: Debug Win32 ------
1>  main.cpp
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2062: tipo 'int' inesperado
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2065: 'divisorMenor' : identificador no declarado
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2065: 'divisorMenor' : identificador no declarado
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2143: error de sintaxis : falta ';' delante de ')'
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(31): error C2143: error de sintaxis : falta ';' delante de ')'
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(32): error C2143: error de sintaxis : falta ';' delante de '{'
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(33): error C2065: 'divisorMenor' : identificador no declarado
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(36): error C2043: instrucción break no válida
1>c:\users\mario\desktop\programacion c++\deitel-ejer4.26\deitel-ejer4.26\main.cpp(40): error C2065: 'divisorMenor' : identificador no declarado
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========
13  Programación / Programación C/C++ / [Aporte] fixedInteger.h en: 16 Mayo 2015, 23:15 pm
 Hola gente, estuve codeando un .h, el cual previene que cuando esperamos un valor de tipo integer y nos ingresan un valor de tipo string no nos tire error, y nos cierre el programa, les dejo un video, y el .h abajo, con un main.cpp para ejemplo de su uso de datos.




Main.cpp

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4. using std::cin;
  5.  
  6. #include <string>
  7. using std::string;
  8. using std::getline;
  9.  
  10. #include "fixedInteger.h"
  11.  
  12. int main()
  13. {
  14. string numero;
  15.  
  16. cout <<"numero: ";
  17. getline(cin,numero);
  18. cout <<endl;
  19.  
  20. fixedInteger aplicacion(numero);
  21.  
  22. cin.get();
  23. return 0;
  24. }

fixedInteger.h


Código
  1. /*
  2. <<<<<<<<<<<FIXED INTEGER>>>>>>>>>>>>>>>>
  3.                                                                                                                                     Creado por: Mario Olivera
  4. MISION:
  5. •Solucionar el error de cuando esperamos un integer y nos dan un string :)
  6.  
  7. USO:
  8. •Use un objeto desde un .cpp ejemplo: "fixedInteger objeto(una variable string);"
  9. • Para obtener el numero integer, solo ponga "objeto.obtenerInteger();" ejemplo: int numero= objeto.obtenerInteger();
  10.  
  11. Atencion: si usted esta esperando un numero integer positivo podria poner un if en su .cpp, ejemplo: si el numero es negativo
  12. entonces ejecuto de nuevo las funciones de fixedInteger;
  13.  
  14. Nada Mas que decir, saludos! Mario Olivera.
  15. */
  16.  
  17.  
  18.  
  19. /////////////////////////////////////////////CODIGO ////////////////////////////////////////
  20.  
  21. #include <iostream>
  22. using std::cout;
  23. using std::endl;
  24. using std::cin;
  25.  
  26. #include <string>
  27. using std::string;
  28.  
  29. class fixedInteger
  30. {
  31. public:
  32. fixedInteger(string numero)
  33. {
  34. convertidor(numero);
  35. }
  36.  
  37. int obtenerInteger()
  38. {
  39. return numeroInteger;
  40. }
  41.  
  42.  
  43.  
  44.  
  45. void convertidor(string numero)
  46. {
  47. int ladoDelCuadrado=0;
  48. int cantidadDeCaracteres;
  49. int resultado=1;
  50. int i=1;
  51. string auxNumero= numero;
  52. string caracter;
  53. string primerCaracter;
  54. string aux;
  55. bool interruptor= false;
  56. bool negativo= false;
  57.  
  58.  
  59. cantidadDeCaracteres= (auxNumero.length());
  60.  
  61. auxNumero= "f" + auxNumero;
  62.  
  63. while (interruptor == false)
  64. {
  65. interruptor= true;
  66. if (cantidadDeCaracteres == 1)
  67. {
  68. caracter= auxNumero[1];
  69.  
  70. if (caracter == "0")
  71. {
  72. ladoDelCuadrado= 0;
  73. }
  74. else
  75. {
  76. if (caracter == "1")
  77. {
  78. ladoDelCuadrado= 1;
  79. }
  80. else
  81. {
  82. if (caracter == "2")
  83. {
  84. ladoDelCuadrado= 2;
  85. }
  86. else
  87. {
  88. if (caracter == "3")
  89. {
  90. ladoDelCuadrado= 3;
  91. }
  92. else
  93. {
  94. if (caracter == "4")
  95. {
  96. ladoDelCuadrado= 4;
  97. }
  98. else
  99. {
  100. if (caracter == "5")
  101. {
  102. ladoDelCuadrado= 5;
  103. }
  104. else
  105. {
  106. if (caracter == "6")
  107. {
  108. ladoDelCuadrado= 6;
  109. }
  110. else
  111. {
  112. if (caracter == "7")
  113. {
  114. ladoDelCuadrado= 7;
  115. }
  116. else
  117. {
  118. if (caracter == "8")
  119. {
  120. ladoDelCuadrado=8;
  121. }
  122. else
  123. {
  124. if (caracter == "9")
  125. {
  126. caracter= 9;
  127. }
  128. else
  129. {
  130. interruptor= false;
  131. }
  132. }
  133. }
  134. }
  135. }
  136. }
  137. }
  138. }
  139. }
  140. }
  141.  
  142. }
  143.  
  144.  
  145.  
  146. else
  147. {
  148. primerCaracter= auxNumero[1];
  149. aux= auxNumero[1];
  150. while (i < cantidadDeCaracteres)
  151. {
  152.  
  153. if ((aux == "+") || (aux == "-"))
  154. {
  155.  
  156. }
  157. else
  158. {
  159. resultado*= 10;
  160. }
  161. ++i;
  162. }
  163. i= 1;
  164.  
  165. caracter= auxNumero[i];
  166.  
  167. if (caracter == "+")
  168. {
  169. i++;
  170. }
  171. if (caracter == "-")
  172. {
  173. i++;
  174. negativo= true;
  175. }
  176.  
  177. while (i < cantidadDeCaracteres)
  178. {
  179. caracter= auxNumero[i];
  180. if (caracter == "0")
  181. {
  182.  
  183. if ((primerCaracter != "+") || (primerCaracter != "-"))
  184. {
  185. if (i > 1)
  186. {
  187. ladoDelCuadrado= ladoDelCuadrado + ( 0 * resultado);
  188. }
  189.  
  190. }
  191. else
  192. {
  193. if (i > 2)
  194. {
  195. ladoDelCuadrado= ladoDelCuadrado + ( 0 * resultado);
  196. }
  197. }
  198. resultado/= 10;
  199. }
  200. else
  201. {
  202. if (caracter == "1")
  203. {
  204. ladoDelCuadrado= ladoDelCuadrado + ( 1 * resultado);
  205. resultado/= 10;
  206. }
  207. else
  208. {
  209. if (caracter =="2")
  210. {
  211. ladoDelCuadrado= ladoDelCuadrado + ( 2 * resultado);
  212. resultado/= 10;
  213. }
  214. else
  215. {
  216. if (caracter == "3")
  217. {
  218. ladoDelCuadrado= ladoDelCuadrado + ( 3 * resultado);
  219. resultado/= 10;
  220. }
  221. else
  222. {
  223. if (caracter == "4")
  224. {
  225. ladoDelCuadrado= ladoDelCuadrado + ( 4 * resultado);
  226. resultado/= 10;
  227. }
  228. else
  229. {
  230. if (caracter == "5")
  231. {
  232. ladoDelCuadrado= ladoDelCuadrado + ( 5 * resultado);
  233. resultado/= 10;
  234. }
  235. else
  236. {
  237. if (caracter == "6")
  238. {
  239. ladoDelCuadrado= ladoDelCuadrado + ( 6 * resultado);
  240. resultado/= 10;
  241. }
  242. else
  243. {
  244. if (caracter == "7")
  245. {
  246. ladoDelCuadrado= ladoDelCuadrado + ( 7 * resultado);
  247. resultado/= 10;
  248.  
  249. }
  250. else
  251. {
  252. if (caracter == "8")
  253. {
  254. ladoDelCuadrado= ladoDelCuadrado + ( 8 * resultado);
  255. resultado/= 10;
  256. }
  257. else
  258. {
  259. if (caracter == "9")
  260. {
  261. ladoDelCuadrado= ladoDelCuadrado + ( 9 * resultado);
  262. resultado/= 10;
  263. }
  264. else
  265. {
  266. interruptor= false;
  267. }
  268. }
  269. }
  270. }
  271. }
  272. }
  273. }
  274.  
  275. }
  276. }
  277.  
  278.  
  279. }
  280. ++i;
  281.  
  282.  
  283. }
  284.  
  285. }
  286.  
  287. if (cantidadDeCaracteres != 1)
  288. {
  289. caracter= auxNumero.substr(2,cantidadDeCaracteres);
  290.  
  291. if ((caracter != "0") && (caracter != "1") && (caracter != "2")  && (caracter != "3")  && (caracter != "4")  && (caracter != "5")  && (caracter != "6")  && (caracter != "7")  && (caracter != "8")  && (caracter != "9"))
  292. {
  293. interruptor= false;
  294. }
  295.  
  296. if (interruptor == true)
  297. {
  298. caracter= auxNumero.substr(cantidadDeCaracteres);
  299.  
  300. if (caracter == "1")
  301. {
  302. ladoDelCuadrado= ladoDelCuadrado + 1;
  303. }
  304. else
  305. {
  306. if (caracter == "2")
  307. {
  308. ladoDelCuadrado= ladoDelCuadrado + 2;
  309. }
  310. else
  311. {
  312. if (caracter == "3")
  313. {
  314. ladoDelCuadrado= ladoDelCuadrado + 3;
  315. }
  316. else
  317. {
  318. if (caracter == "4")
  319. {
  320. ladoDelCuadrado= ladoDelCuadrado + 4;
  321. }
  322. else
  323. {
  324. if (caracter == "5")
  325. {
  326. ladoDelCuadrado= ladoDelCuadrado + 5;
  327. }
  328. else
  329. {
  330. if (caracter == "6")
  331. {
  332. ladoDelCuadrado= ladoDelCuadrado + 6;
  333. }
  334. else
  335. {
  336. if (caracter == "7")
  337. {
  338. ladoDelCuadrado= ladoDelCuadrado + 7;
  339. }
  340. else
  341. {
  342. if (caracter == "8")
  343. {
  344. ladoDelCuadrado= ladoDelCuadrado + 8;
  345. }
  346. else
  347. {
  348. ladoDelCuadrado= ladoDelCuadrado + 9;
  349. }
  350. }
  351. }
  352. }
  353. }
  354. }
  355. }
  356. }
  357.  
  358. }
  359. else
  360. {
  361.  
  362. cout <<"ingrese el valor nuevamente: ";
  363. getline(cin, auxNumero);
  364.  
  365. ladoDelCuadrado=0;
  366. resultado=1;
  367. i=1;
  368. interruptor= false;
  369. cantidadDeCaracteres= (auxNumero.length());
  370. auxNumero= "f" + auxNumero;
  371. }
  372.  
  373. }
  374. else
  375. {
  376. if (interruptor == false)
  377. {
  378. cout <<"ingrese el valor nuevamente: ";
  379. getline(cin, auxNumero);
  380.  
  381. ladoDelCuadrado=0;
  382. resultado=1;
  383. i=1;
  384. interruptor= false;
  385. cantidadDeCaracteres= (auxNumero.length());
  386. auxNumero= "f" + auxNumero;
  387. }
  388. }
  389. }
  390.  
  391. if (negativo == true)
  392. {
  393. ladoDelCuadrado= ladoDelCuadrado * -1;
  394. }
  395.  
  396. numeroInteger= ladoDelCuadrado;
  397. }
  398.  
  399. private:
  400. string mensajeError;
  401. int numeroInteger;
  402.  
  403. };
14  Programación / Programación C/C++ / Problema con variable string en: 15 Mayo 2015, 19:13 pm
 Hola gente, estoy teniendo un problema con una variable string, mi problema solo es en C++ en otr lenguaje no. Bueno mi problema es el siguiente:

pido un valor de tipo string,

si es valor es por ejemplo "+" el programa no se cierra y no tira error.
pero si se ingresa solo "+sadasd" se cierra y tira error.

Alguna solucion?  :P
15  Programación / Programación General / Programa solución a error cuando esperamos un integer + codigo en: 15 Mayo 2015, 06:43 am
Mision del programa: convertir variable string a integer

Programita hecho por mi, que lee un numero (la variable de tipo string), saca digito por digito y va comprobando, se encuentra con problematicas como tener un signo + o - delante, con problematicas como que empieze con 0, que tenga letras, que tenga puntos etc.

Gran utilidad para cuando estamos esperando un integer, y nos ingresan un string, donde el programa siempre se termina cerrando.

Saludos! Mario Olivera.

PD: se puede hacer un archivo .h para C++ e implementarlo para cada variable :D





Código en pascal (despues dejaré el de C++)
Código
  1. program hki;
  2.  
  3. Uses
  4. crt;
  5.  
  6. var
  7. (*VARIABLES PARA EL PASAJE DE STRING INTEGER!*)
  8. ladoDelCuadrado:integer;
  9. cantidadDeCaracteres:integer;
  10. auxCantidadCaracteres:integer;
  11. multiplicador,resultado:integer;
  12. auxNumero:string;
  13. caracter:char;
  14. i:integer;
  15. polaridad:boolean;
  16. interruptor:boolean;
  17. cambioPolaridad:boolean;
  18. respuesta:boolean;
  19.  
  20. (*VARIABLES PARA DIBUJAR EL CUADRADO!*)
  21. anchoUno:integer;
  22. cantidadDeLineas:integer;
  23. auxAncho:integer;
  24.  
  25. BEGIN
  26. ClrScr;
  27.  
  28.  
  29. i:=1;
  30. interruptor:= false; (* si los varoles son correctos esta en true, cuando entra a un else de algun case se apaga y asi queda*)
  31. polaridad:= true; (* Numero positivo*)
  32.    cambioPolaridad:=false;
  33. respuesta:= true;
  34.  
  35. write('Ingrese el lado del cuadrado: ');
  36. readLn(auxNumero); (*Lee el numero string*)
  37.  
  38. cantidadDeCaracteres:=length(auxNumero);
  39. multiplicador:= 10;
  40. ladoDelCuadrado:= 0;
  41. resultado:= 10;
  42.  
  43. while (interruptor <> true) do
  44. begin
  45. interruptor:= true;
  46. if (cantidadDeCaracteres = 1) then
  47. begin
  48. caracter:= auxNumero[1];
  49. case caracter of
  50. '0':
  51. begin
  52. ladoDelCuadrado:= 0;
  53. end;
  54. '1':
  55. begin
  56. ladoDelCuadrado:= 1;
  57. end;
  58. '2':
  59. begin
  60. ladoDelCuadrado:= 2;
  61. end;
  62. '3':
  63. begin
  64. ladoDelCuadrado:= 3;
  65. end;
  66. '4':
  67. begin
  68. ladoDelCuadrado:= 4;
  69. end;
  70. '5':
  71. begin
  72. ladoDelCuadrado:= 5;
  73. end;
  74. '6':
  75. begin
  76. ladoDelCuadrado:= 6;
  77. end;
  78. '7':
  79. begin
  80. ladoDelCuadrado:= 7;
  81. end;
  82. '8':
  83. begin
  84. ladoDelCuadrado:= 8;
  85. end;
  86. '9':
  87. begin
  88. ladoDelCuadrado:= 9;
  89. end;
  90. else
  91. begin
  92. interruptor:= false;
  93. end
  94. end;
  95. end
  96. else
  97. begin
  98. while (i <  cantidadDeCaracteres) do (*Me Falta sumar el ultimo digito itera 4 veces*)
  99. begin
  100. caracter:= auxNumero[1];
  101. if (i = 1) then
  102. begin
  103. if (caracter = '+') then
  104. begin
  105. auxNumero:= copy(auxNumero,2,cantidadDecaracteres);
  106. end;
  107.  
  108. if (caracter = '-') then
  109. begin
  110. auxNumero:= copy(auxNumero,2,cantidadDecaracteres);
  111. interruptor:= false;
  112. polaridad:= false; (* SE PONE EN MENOS*)
  113. cambioPolaridad:= true;
  114. end;
  115.  
  116. end;
  117.  
  118. caracter:= auxNumero[i];
  119. (*if (interruptor <> false) then
  120. begin*)
  121. case caracter of
  122. '0':
  123. begin
  124. if ((auxNumero[1]) <> '+') or ((auxNumero[1]) <> '-') then
  125. begin
  126. if (i > 1) then
  127. begin
  128. ladoDelCuadrado:= ladoDelCuadrado + ( 0 * resultado);
  129. end;
  130.  
  131. end
  132. else
  133. begin
  134. if (i > 2) then
  135. begin
  136. ladoDelCuadrado:= ladoDelCuadrado + ( 0 * resultado);
  137. end;
  138. end;
  139. end;
  140. '1':
  141. begin
  142. ladoDelCuadrado:= ladoDelCuadrado + ( 1 * resultado);
  143. end;
  144. '2':
  145. begin
  146. ladoDelCuadrado:= ladoDelCuadrado + ( 2 * resultado);
  147. end;
  148. '3':
  149. begin
  150. ladoDelCuadrado:= ladoDelCuadrado + ( 3 * resultado);
  151. end;
  152. '4':
  153. begin
  154. ladoDelCuadrado:= ladoDelCuadrado + ( 4 * resultado);
  155. end;
  156. '5':
  157. begin
  158. ladoDelCuadrado:= ladoDelCuadrado + ( 5 * resultado);
  159. end;
  160. '6':
  161. begin
  162. ladoDelCuadrado:= ladoDelCuadrado + ( 6 * resultado);
  163. end;
  164. '7':
  165. begin
  166. ladoDelCuadrado:= ladoDelCuadrado + ( 7 * resultado);
  167. end;
  168. '8':
  169. begin
  170. ladoDelCuadrado:= ladoDelCuadrado + ( 8 * resultado);
  171. end;
  172. '9':
  173. begin
  174. ladoDelCuadrado:= ladoDelCuadrado + ( 9 * resultado);
  175. end
  176. else
  177. begin
  178. respuesta:=false;
  179. end;
  180. end;
  181. (*end;*)
  182.  
  183. resultado:= resultado * 10;
  184. i:= i + 1;
  185. end;
  186.  
  187. end;
  188.  
  189. (* SACANDO EL ULTIMO DIGITO POR FIN! *)
  190. if (cantidadDeCaracteres <> 1) then
  191. begin
  192. if (cambioPolaridad = true) then
  193. begin
  194. cantidadDeCaracteres:= cantidadDeCaracteres + 1;
  195. caracter:= auxNumero[cantidadDeCaracteres];
  196. end
  197. else
  198. begin
  199. caracter:= auxNumero[cantidadDeCaracteres];
  200. end;
  201.  
  202. case caracter of
  203. '1','2','3','4','5','6','7','8','9','0':
  204. begin
  205.  
  206. end;
  207. else
  208. begin
  209. respuesta:= false;
  210. end;
  211. end;
  212.  
  213. if (interruptor = true) and (respuesta = true) and (ladoDelcuadrado > 9) then
  214. begin
  215. if (cambioPolaridad = true) then
  216. begin
  217. cantidadDeCaracteres:= cantidadDeCaracteres + 1;
  218. caracter:= auxNumero[cantidadDeCaracteres];
  219. end
  220. else
  221. begin
  222. caracter:= auxNumero[cantidadDeCaracteres];
  223. end;
  224.  
  225. case caracter of
  226. '1':
  227. begin
  228. ladoDelCuadrado:= ladoDelCuadrado + 1;
  229. end;
  230. '2':
  231. begin
  232. ladoDelCuadrado:= ladoDelCuadrado + 2;
  233. end;
  234. '3':
  235. begin
  236. ladoDelCuadrado:= ladoDelCuadrado + 3;
  237. end;
  238. '4':
  239. begin
  240. ladoDelCuadrado:= ladoDelCuadrado + 4;
  241. end;
  242. '5':
  243. begin
  244. ladoDelCuadrado:= ladoDelCuadrado + 5;
  245. end;
  246. '6':
  247. begin
  248. ladoDelCuadrado:= ladoDelCuadrado + 6;
  249. end;
  250. '7':
  251. begin
  252. ladoDelCuadrado:= ladoDelCuadrado + 7;
  253. end;
  254. '8':
  255. begin
  256. ladoDelCuadrado:= ladoDelCuadrado + 8;
  257. end;
  258. '9':
  259. begin
  260. ladoDelCuadrado:= ladoDelCuadrado + 9;
  261. end
  262. end;
  263. end
  264. else
  265. begin
  266. writeln('No ingreses valores torpes o(-.-)o: ');
  267. write('Ingrese el lado del cuadrado: ');
  268. readLn(auxNumero);
  269. i:=1;
  270. interruptor:= false;
  271. polaridad:= true; (* Numero positivo*)
  272. cambioPolaridad:=false;
  273. respuesta:= true;
  274. cantidadDeCaracteres:=length(auxNumero);
  275. multiplicador:= 10;
  276. ladoDelCuadrado:= 0;
  277. resultado:= 10;
  278.  
  279.                            end;
  280. end
  281. else (*SI TIENE 1 CARACTER*)
  282. begin
  283. if(interruptor = false) then
  284. begin
  285. writeln('No ingreses valores torpes o(-.-)o: ');
  286. write('Ingrese el lado del cuadrado: ');
  287. readLn(auxNumero);
  288. i:=1;
  289. interruptor:= false;
  290. polaridad:= true; (* Numero positivo*)
  291. cambioPolaridad:=false;
  292. respuesta:= true;
  293. cantidadDeCaracteres:=length(auxNumero);
  294. multiplicador:= 10;
  295. ladoDelCuadrado:= 0;
  296. resultado:= 10;
  297. end;
  298. end;
  299. end; (*FIN WHILE*)
  300.  
  301. (*YA TENDRIA EL VALOR INTEGER*)
  302. writeln('Valor: ',ladoDelCuadrado);
  303. (*ESCRITURA DEL CUADRADO!!!! POR FIN -.- *)
  304.  
  305. auxAncho:=0;
  306. anchoUno:= 0;
  307. cantidadDeLineas:=1;
  308.  
  309.  
  310. if (ladoDelCuadrado = 1) then
  311. begin
  312. writeLn('*');
  313. end
  314.  
  315. else
  316. begin
  317.  
  318. while (anchoUno <> ladoDelCuadrado) do
  319. begin
  320. write('*');
  321. anchoUno:= anchoUno + 1;
  322. end;
  323.  
  324. anchoUno:= 0;
  325. writeLn(' ');
  326.  
  327.  
  328.  
  329. while ((ladoDelCuadrado >= 3) and ( cantidadDeLineas <= (ladoDelCuadrado - 2))) do
  330. begin
  331. write('*');
  332.  
  333. while (auxAncho < (ladoDelCuadrado -2)) do
  334. begin
  335.  
  336. write(' ');
  337. auxAncho:= auxAncho + 1;
  338. end;
  339. auxAncho:= 0;
  340. writeLn('*');
  341. cantidadDeLineas:= cantidadDeLineas + 1;
  342. end;
  343.  
  344. while (anchoUno <> ladoDelCuadrado) do
  345. begin
  346. write('*');
  347. anchoUno := anchoUno + 1;
  348. end;
  349. writeLn(' ');
  350. end;
  351.  
  352. readkey;
  353. END.
16  Programación / Programación C/C++ / [APORTE] Ejercicio en C++: programa que dibuje un cuadrado en: 12 Mayo 2015, 21:33 pm
 Hola gente, vengo a dejarles un ejercicio, para aquellos que quieran practicar los bucles, o ciclos, un ejercicio que dice lo siguiente:

Ejercicio: Escriba un programa que pida al usuario que introduzca el tamaño del lado de un cuadrado y que muestre un cuadrado hueco de ese tamaño, compuesto de asteriscos y espacios en blanco. Su programa debe funcionar con cuadrados que tengan lados de todas las longitudes entre 1 y 20. por ejemplo, si su programa lee un tamaño de 5, debe imprimir:

*****
*      *
*      *
*      *
*****

Espero les resulte facil, para el que este practicando los ciclos les va a servir!

Comenten sus códigos jeje  :P

Saludos!  ;D

Dejo mi desarrollo para el que lo quiera ver, estaría bueno que antes hagan el ejercicio.

main.cpp
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::endl;
  4. using std::cout;
  5.  
  6. #include "cabezal.h"
  7.  
  8. int main()
  9. {
  10. int auxCuadrado;
  11. cout <<"Ingrese el lado del cuadrado: ";
  12. cin  >>auxCuadrado;
  13.  
  14. while (auxCuadrado < 1)
  15. {
  16. cout <<"\nERROR!: Ingrese el lado del cuadrado: ";
  17. cin  >>auxCuadrado;
  18. }
  19.  
  20. cabezal aplicacion;
  21. aplicacion.obtenerCuadrado(auxCuadrado);
  22. cin.get();
  23. cin.get();
  24. return 0;
  25. }

cabezal.h
Código
  1. class cabezal
  2. {
  3. public:
  4. //funciones obtener
  5. void obtenerCuadrado(int);
  6.  
  7. private:
  8. int cuadrado;
  9. };

cabezal.cpp
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::endl;
  4. using std::cout;
  5.  
  6. #include "cabezal.h"
  7.  
  8. void cabezal::obtenerCuadrado(int Cuadrado)
  9. {
  10. int anchoUno=0;
  11.  
  12. if (Cuadrado == 1)
  13. {
  14. cout <<"*" <<endl;
  15. }
  16.  
  17. else
  18. {
  19. while (anchoUno != Cuadrado)
  20. {
  21. cout <<"*";
  22. ++anchoUno;
  23. }
  24.  
  25. anchoUno= 0;
  26. cout <<endl;
  27.  
  28. int auxLineas=1;
  29.  
  30. while ((Cuadrado >= 3) && ( auxLineas <= (Cuadrado - 2)))
  31. {
  32. int auxAncho= 0;
  33. cout <<"*";
  34.  
  35. while (auxAncho < (Cuadrado -2))
  36. {
  37. cout <<" ";
  38. ++auxAncho;
  39. }
  40. cout <<"*" <<endl;
  41. ++auxLineas;
  42. }
  43.  
  44. while (anchoUno != Cuadrado)
  45. {
  46. cout <<"*";
  47. ++anchoUno;
  48. }
  49. cout <<endl;
  50. }
  51. }
17  Programación / Programación C/C++ / [Solucionado] Problema en iteracion while en: 1 Mayo 2015, 23:56 pm
 Hola amigos, tengo un problema, el valor de numeroDeEmpleado llega a 2, pero el ciclo sigue repitiendose.. porque?

No dejo el .h y el otro cpp, porque no creo que tendrán algo que ver.. Saludos!

main.cpp
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4. using std::endl;
  5.  
  6. #include <string>
  7. using std::string;
  8.  
  9. #include "Empleado.h"
  10.  
  11. int main()
  12. {
  13. //variables
  14. string nombre,apellido;
  15. int salario;
  16. int numeroDeEmpleado= 1;
  17.  
  18. while (numeroDeEmpleado <= 2) //itera 2 veces
  19. {
  20. cout <<"Empleado " <<numeroDeEmpleado <<": \n";
  21. cout <<"Nombre: ";
  22. cin  >> nombre;
  23. cout <<"\nApellido Paterno: ";
  24. cin  >> apellido;
  25. cout <<"\nSalario Mensual: ";
  26. cin  >> salario;
  27. cout <<endl;
  28.  
  29. if (numeroDeEmpleado = 1)
  30. {
  31. Empleado empleado1(nombre,apellido,salario);
  32. cout <<"\nNombre: " <<empleado1.obtenerPrimerNombre() <<endl;
  33. cout <<"Apellido: " <<empleado1.obtenerApellidoPaterno() <<endl;
  34. cout <<"Salario Mensual: " <<empleado1.obtenerSalarioMensual() <<endl;
  35. cout <<"Salario Anual: " <<empleado1.obtenerSalarioAnual() <<endl;
  36. }
  37.  
  38. else
  39. {
  40. Empleado empleado2(nombre,apellido,salario);
  41. cout <<"\nNombre: " <<empleado2.obtenerPrimerNombre() <<endl;
  42. cout <<"Apellido: " <<empleado2.obtenerApellidoPaterno() <<endl;
  43. cout <<"Salario Mensual: " <<empleado2.obtenerSalarioMensual() <<endl;
  44. cout <<"Salario Anual: " <<empleado2.obtenerSalarioAnual() <<endl;
  45. }
  46.  
  47. numeroDeEmpleado++;
  48. }
  49. cin.get();
  50. cin.get();
  51. return 0;
  52. }
18  Programación / Programación C/C++ / [APORTE] Programa para una tienda en: 27 Abril 2015, 04:34 am
 Hola gente, les dejo un código fuente que hice en C++, es un programita sencillo, pero para el que esté estudiando el tema de la separación de la interfaz de la implementación usando un .h y dos .cpp, les va a ayudar, cualquier error o algo avisen.

PD: use el system("cls") porque la idea es mostrar un poco como se maneja la sepacion de la interfaz de la implementación, no como es la manera correcta de limpiar la consola xD SALUDOS!

main.cpp
Código
  1. #include <iostream>
  2. using std::cin;
  3.  
  4. #include "cabezal.h"
  5.  
  6. int main()
  7. {
  8.  
  9. programa llamador;
  10. llamador.inicio();
  11. cin.get();
  12. return 0;
  13. }

cabezal.h
Código
  1. class programa
  2. {
  3. public:
  4. //FUNCIONES MIENBRO
  5. void inicio();
  6. void mostrarDatos();
  7. void mostrarMenu();
  8. void comprobarOption(int);
  9. void nuevoProducto(int);
  10. };
cabezal.cpp
Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::endl;
  4. using std::cin;
  5.  
  6. #include "cabezal.h"
  7.  
  8. //VARIABLES
  9. int cantidadDeProductos;
  10. int optionNuevoProducto;
  11. int totalProductos= 0;
  12. double precioProducto;
  13. double total = 0;
  14.  
  15. void programa::inicio()
  16. {
  17. mostrarDatos();
  18. mostrarMenu();
  19. }
  20. void programa::mostrarDatos()
  21. {
  22. cout <<endl <<endl;
  23. cout <<"\t. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  ."
  24. <<"\n\t.                   SUPER-M V 1.0 FIX 0                        ."
  25. <<"\n\t.                                                              ."
  26. <<"\n\t.  DP: MARIO.OLIVERA96@GMAIL.COM                               ."
  27. <<"\n\t.  SINCE: 2015                                                 ."
  28. <<"\n\t  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  "
  29. <<endl <<endl <<endl;
  30. }
  31. void programa::mostrarMenu()
  32. {
  33. int option;
  34. cout <<"MENU" <<endl <<endl;
  35. cout <<"(1) Nuevo Producto\n(2) Terminar compra\n\n";
  36. cout <<"Option: ";
  37. cin >> option;
  38. cout <<"\a";
  39. comprobarOption(option);
  40. }
  41. void programa::comprobarOption(int option)
  42. {
  43.  
  44. switch (option)
  45. {
  46. case 1:
  47. system("cls");
  48. cout <<"Precio: ";
  49. cin  >> precioProducto;
  50. cout <<"\a\nCantidad: ";
  51. cin  >> cantidadDeProductos;
  52. cout <<"\a\n(1)LISTO\t(2) ATRAS\nOption: ";
  53. cin  >> optionNuevoProducto;
  54. cout <<"\a";
  55. nuevoProducto(optionNuevoProducto);
  56.  
  57.  
  58.  
  59.  
  60. break;
  61.  
  62. case 2:
  63. system("cls");
  64. if (totalProductos <= 0)
  65. {
  66. cout <<"COMPRA TERMINADA.\n\nCantidad de productos: 0\n\nTotal a pagar: $0.00"<<endl;
  67. cin.get();
  68. cin.get();
  69. system("cls");
  70. inicio();
  71. }
  72. else
  73. {
  74. cout <<"COMPRA TERMINADA.\n\nCantidad de productos: " <<totalProductos <<"\n\nTotal a pagar: $" <<total <<endl;
  75. cin.get();
  76. cin.get();
  77. total=0;
  78. totalProductos=0;
  79. system("cls");
  80. programa();
  81. }
  82. break;
  83. default:
  84. system("cls");
  85. cout <<"\nVALOR INVALIDO!\nPRESIONE ENTER.\n";
  86. cin.get();
  87. cin.get();
  88. system("cls");
  89. inicio();
  90. break;
  91. cout <"ja!\n";
  92. cin.get();
  93. }
  94. }
  95. void programa::nuevoProducto(int optionNuevoProducto)
  96. {
  97.  
  98. switch (optionNuevoProducto)
  99. {
  100. case 1:
  101. if ((precioProducto >= 0) && (cantidadDeProductos >= 0))
  102. {
  103. totalProductos+= cantidadDeProductos;
  104. total+= cantidadDeProductos * precioProducto;
  105. cout<<totalProductos <<" "<<total;
  106. cin.get();
  107. system("cls");
  108. inicio();
  109. }
  110.  
  111. else
  112. {
  113. cout <<"\nVALORES INVALIDOS!\nPRESIONE ENTER\n";
  114. cin.get();
  115. cin.get();
  116. comprobarOption(1);
  117. }
  118.  
  119. break;
  120.  
  121. case 2:
  122. system("cls");
  123. inicio();
  124. break;
  125. }
  126. }
19  Programación / Programación C/C++ / Aporte: escribir un numero e imprimir el numero en cadena en: 24 Abril 2015, 18:54 pm
 Hola gente, como dice el titulo vengo a dejarles otro aporte mas, para el que este estudiando la condición SEGUN (switch) esto les va a venir bién, es una anidacion la cual permite que cuando se ingresa un número menor a 1000 se imprima su nombre, dejo el código :D


main.cpp
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4.  
  5. int numero,centena,decena,unidad,resto;
  6.  
  7. int main()
  8. {
  9. cout <<"Ingrese el numero (menor a 999):  ";
  10. cin >> (numero);
  11.  
  12. if ((numero < 1000) && (numero >=0) )
  13. {
  14. centena= numero / 100;
  15. decena= ((numero % 100) / 10);
  16. unidad= ((numero % 100) % 10);
  17.  
  18. switch (centena)
  19. {
  20. case 1:
  21. if(numero > 100)
  22. {
  23. cout <<"Ciento ";
  24. }
  25. else
  26. {
  27. cout <<"cien";
  28. }
  29. break;
  30. case 2:cout <<"DosCientos ";
  31. break;
  32. case 3:cout <<"TresCientos ";
  33. break;
  34. case 4:cout <<"CuatroCientos ";
  35. break;
  36. case 5:cout <<"Quinientos ";
  37. break;
  38. case 6:cout <<"SeisCientos ";
  39. break;
  40. case 7:cout <<"SeteCientos ";
  41. break;
  42. case 8:cout <<"OchoCientos ";
  43. break;
  44. case 9:cout <<"NueveCientos ";
  45. break;
  46. }
  47.  
  48. resto= numero % 100;
  49.  
  50. switch (resto)
  51. {
  52. case 10: cout <<"DIEZ";
  53. break;
  54. case 11: cout <<"ONCE";
  55. break;
  56. case 12: cout <<"DOCE";
  57. break;
  58. case 13: cout <<"TRECE";
  59. break;
  60. case 14: cout <<"CATORCE";
  61. break;
  62. case 15: cout <<"QUINCE";
  63. break;
  64. case 20: cout <<"VEINTE";
  65. break;
  66. case 30: cout <<"TREINTA";
  67. break;
  68. case 40: cout <<"CUARENTA";
  69. break;
  70. case 50: cout <<"CINCUENTA";
  71. break;
  72. case 60: cout <<"SESENTA";
  73. break;
  74. case 70: cout <<"SETENTA";
  75. break;
  76. case 80: cout <<"OCHENTA";
  77. break;
  78. case 90: cout <<"NOVENTA";
  79. break;
  80. default:
  81. {
  82. switch (decena)
  83. {
  84. case 1: cout <<"DIES Y ";
  85. break;
  86. case 2: cout <<"VEINT y ";
  87. break;
  88. case 3: cout <<"TREINTA y ";
  89. break;
  90. case 4: cout <<"CUARENTA y ";
  91. break;
  92. case 5: cout <<"CINCUENTA y ";
  93. break;
  94. case 6: cout <<"SESENTA y ";
  95. break;
  96. case 7: cout <<"SETENTA y ";
  97. break;
  98. case 8: cout <<"OCHENTA y ";
  99. break;
  100. case 9: cout <<"NOVENTA y ";
  101. break;
  102. }
  103. switch (unidad)
  104. {
  105. case 0: cout <<"CERO";
  106. break;
  107.                                                        case 1: cout <<"UNO";
  108. break;
  109. case 2: cout <<"DOS";
  110. break;
  111. case 3: cout <<"TRES";
  112. break;
  113. case 4: cout <<"CUATRO";
  114. break;
  115. case 5: cout <<"CINCO";
  116. break;
  117. case 6: cout <<"SEIS";
  118. break;
  119. case 7: cout <<"SIETE";
  120. break;
  121. case 8: cout <<"OCHO";
  122. break;
  123. case 9: cout <<"NUEVE";
  124. break;
  125. }
  126. }
  127. }
  128. }
  129. else
  130. {
  131. cout <<"valor no valido";
  132. }
  133. cin.get();
  134. cin.get();
  135. return 0;
  136. }
20  Programación / Programación C/C++ / Aporte programa que saca sueldo semanal en: 24 Abril 2015, 17:02 pm
 Hola gente, para los que estén estudiando las condiciones SI y SINO de C++ les dejo este código para que vean más o menos como se trabaja con SI y SINO. Este programa lo que hace es sacar el salario semanal de una persona, segun las horas trabajadas y lo que le pagan por hora, y si las horas trabajadas son mas de 35, a las horas extras (osea 36 o más) se le da un aumento del 40% a cada hora extra.

Código
  1. #include <iostream>
  2. using std::cout;
  3. using std::cin;
  4.  
  5. int main()
  6. {
  7. //VARIABLES
  8. int horasTrabajadas;
  9. double precioPorHora;
  10. double salarioSemanal;
  11. //CONSTANTES
  12. const double pagoPorSuperacion= 1.4;
  13. const int superacion= 35;
  14.  
  15. cout <<"Ingrese las horas trabajadas: ";
  16. cin >> horasTrabajadas ;
  17. cout <<endl;
  18. cout <<"Ingrese el precio por hora: ";
  19. cin >> precioPorHora;
  20. cout <<endl;
  21.  
  22. if (precioPorHora < 0)
  23. {
  24. precioPorHora= precioPorHora * -1;
  25. cout <<"Se Ingreso un valor negativo al campo precio por hora,\n"
  26. << "este mismo fue cambiado para una funcionalidad correcta!\n";
  27. }
  28.  
  29. if (horasTrabajadas > 168)
  30. {
  31. horasTrabajadas= 168;
  32. cout <<"Las horas trabajadas superaron las horas maxima que hay en una semana,\n"
  33. << "ahora las horas trabajadas valen 168.\n";
  34. }
  35. else
  36. {
  37. if (horasTrabajadas < 0)
  38. {
  39. horasTrabajadas*= -1;
  40. cout <<"Las horas trabajadas eran negativas, se pasaron a positivas!\n";
  41.  
  42. }
  43. if (horasTrabajadas == 0)
  44. {
  45. salarioSemanal= 0;
  46. }
  47. else
  48. {
  49. if (horasTrabajadas <= superacion)
  50. {
  51. salarioSemanal= precioPorHora * horasTrabajadas;
  52. }
  53.        else
  54. {
  55. salarioSemanal= ((superacion * precioPorHora) + ((horasTrabajadas - superacion) *
  56. (precioPorHora * pagoPorSuperacion)));
  57. }
  58. }
  59. }
  60. cout <<"El salario semanal es: $" <<salarioSemanal;
  61. cin.get();
  62. cin.get();
  63. }
  64.  
Páginas: 1 [2] 3 4 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines