Entradas etiquetadas con c++
Fallece Dennis Ritchie, creador del lenguaje C y del sistema operativo Unix
14 oct
Este miércoles se ha sabido que el pasado domingo 9 de octubre, pocos días después del fallecimiento de Steve Jobs, el mundo perdió a otra importante figura de la tecnología, el estadounidense Dennis Ritchie, creador del lenguaje C y del sistema operativo Unix, quien murió a la edad de 70 años.
La noticia no se ha dado a conocer de forma oficial sino que se ha hecho pública a raíz de un comentario de su excompañero Robert Pike en Google +. “Acabo de enterarme que, tras una larga enfermedad, Dennis Ritchie murió en su hogar este fin de semana. No tengo mayores detalles, sin embargo confío en que habrá gente que apreciará el alcance de sus contribuciones y sentirá su partida apropiadamente”, dijo Pike.
“Él era un hombre tranquilo y celoso de su privacidad, pero era también mi amigo, colega y colaborador. El mundo ha perdido a una mente realmente grandiosa”, explicó.
Quizás la mayor contribución de Ritchie a la era de la informática fue la creación del lenguaje C, un lenguaje de programación ampliamente utilizado para crear software de sistemas y aplicaciones que además ha sido de gran influencia para lenguajes posteriores como el Java.
Por otro lado, este pionero de la informática también Más >
Saber si se está ejecutando como root
21 dic
En algunos casos necesitamos que nuestra aplicación sea ejecutada como usuario root en GNU/Linux. Por lo cual, debemos de comprobar cuál usuario ejecutó la aplicación.
En este caso lo haré en C++ y usando la función getuid(), la cual retorna el Id. del usuario ( User ID, UID ) que es un número único y hace referencia al usuario en el archivo /etc/passwd.
Si abrimos el archivo anterior podemos encontrar en la primera línea lo siguiente:
root:x:0:0:root:/root:/bin/bash
El cuarto valor sería el identificador.
Bueno, no siendo más voy con el código. En este caso, diseñé la función IsRoot() que retorna 0 si se ejecutó como root y 1 si no.
#include <unistd.h> #include <iostream> using namespace std; /* * IsRoot() */ int IsRoot() { int sUser = getuid(); if (sUser != 0) return 1; else return 0; } int main() { if (IsRoot() == 0) { cout << "-- Root Calc --" << endl; cout << " 2 x 2 = " << 2*2 << endl; } else cout << "Debe ejecutar como root" << endl; }
Simulación de sentencia «switch (case)» en Python
5 ago
La sentencia «switch (case)» es una estructura de control que permite controlar el flujo del programa basado en el valor de una variable o expresión. Se usa comúnmente para evitar el uso de if’s anidados, lo que en cierta parte disminuye la legibilidad y rapidez de un programa.
Su funcionamiento es sencillo, si la variable o expresión tiene un número determinado de valores, se podría ejecutar una serie de acciones dependiendo de cada valor por separado.
Un ejemplo en C y Pascal:
int main() { int num = 1; switch (num) { case 0: printf("El número es cero\n"); break; case 1: printf("El número es uno\n"); break; case 2: printf("El número es dos\n"); break; /* case default: */ } return EXIT_SUCCESS; }
—
var Num:Integer = 2; begin case Num of {Inicio Case} 0:WriteLn('Cero'); 1:WriteLn('Uno'); 2:WriteLn('Dos'); else WriteLn('Desconocido'); end; {Fin Case} ReadLn; end.
Basándose en el valor de la variable Num (Integer) mostrará un mensaje de salida diferente. El default ( C ) y el else ( Pascal ) se ejecuta cuando el valor de la variable no coincide con ninguno de los valores anteriores. La mayoría de los lenguajes de programación cuentan con ésta sentencia, pero por desgracia Python no, en lugar de ello se usa una serie de bloques if-elif-else.
Aquí un ejemplo como los anteriormente vistos:
Num = 3 if Num == 0: print 'Cero' elif Num == 1: print 'Uno' elif Num == 2: print 'Dos' elif Num == 3: print 'Tres' else: print 'Desconocido...'
¡Bien!, una solución simple, efectiva, bastante fácil de trabajar pero no es elegante. Especialmente si se Más >
Cifrado César en C++
24 may
Versión en C++ del algoritmo de cifrado César, programada por mí.
/**************************************** @---------------------------------- @ Autor original: [p3ll3] @ Version original: Java @ Autor modificacion: .:WindHack:. @ Version modificacion: C++ @ Sitio web: - http://daw-labs.com - http://foro.code-makers.net @---------------------------------- *****************************************/ #include <iostream> #include <string> using namespace std; /* Declaracion de variables.. El abecedario que usaremos para el cifrado. */ char Abecedario[]={'a','b','c','d','e','f','g','h','i','j','k', 'l','m','n','o','p','q','r','s','t','u','v', 'w','x','y','z'}; string Palabra,NuevaPalabra = ""; unsigned int i,x,ALength,Temp,Tmp,Clave = 0; /* Funcion para convertir una cadena de texto a minusculas. */ string StringToLower(string strToConvert) { for(unsigned int i=0;i < strToConvert.length();i++) { strToConvert[i] = tolower(strToConvert[i]); } return strToConvert; } /* Instancia principal de la aplicacion. */ int main() { cout << "Escriba la palabra que desea cifrar > "; /* Pedimos la palabra */ cin >> Palabra; /* La recibimos y guardamos en la variable "Palabra". */ Palabra = StringToLower(Palabra); /* La convertimos a minusculas. */ ALength = strlen(Abecedario); /* Obtenemos la longitud del abecedario */ cout << "Escriba la clave para codificar (entre 1 y 24) > ";/* Pedimos la clave de cifrado. */ cin >> Clave; /* La recibimos y guardamos en la varible "Clave". */ if ((Clave >= 1) & (Clave <= 26)){ /* Confirmamos si es correcta...*/ for (i = 0; i < Palabra.length(); i++){ /* Recorremos la palabra hasta el final. */ for (x = 0; x < ALength - 1; x++){ /* Recorremos el abecedarios. */ if (Palabra[i] == Abecedario[x]){ /* Buscamos caracteres que estén en ambos. */ if (x+Clave >= 26){ Temp = x+Clave; Tmp = Temp-26; NuevaPalabra = NuevaPalabra + Abecedario[Tmp]; /* Creando la palabra. */ }else NuevaPalabra = NuevaPalabra + Abecedario[x+Clave]; /* Creando la palabra. */ } } } }else cout << "Clave errónea"; cout << "La palabra cifrada es " << NuevaPalabra; /* Muestro la palabra cifrada. */ getchar(); return 0; }
Una alternativa un poco más cómoda:
/*
===================================
@Autor: Más >
Obtener el nombre del PC
16 may
Con éste código obtendremos el nombre del PC. Se emplea la API de Windows® GetComputerName.
En C++:
/* DaW - Labs - http://daw-labs.com */ /* .:WindHack:. */ #include <windows.h> int main() { char Buffer[MAX_COMPUTERNAME_LENGTH + 1]; DWORD nSize = sizeof(Buffer); if (GetComputerName(Buffer,&nSize)) { MessageBox(0,Buffer,"Nombre de PC",MB_OK | MB_ICONINFORMATION); } return 0; }
En Delphi:
(* Autor: .:WindHack:. Sitio web: http://daw-labs.com Clase: Función Descripción: Obtiene el nombre del PC usando la API GetComputerName. *) function GetPC_Name():String; var Buffer:Array [0..MAX_COMPUTERNAME_LENGTH] of Char; BufferSize:DWORD; begin BufferSize := SizeOf(Buffer); Result := ''; if GetComputerName(Buffer,BufferSize) then Result := Buffer; end;
Número par o impar en C++
16 may
Con este código se puede determinar si el número ingresado por el usuario es par o impar.
/* DaW - Labs - http://daw-labs.com */ /* .:WindHack:. */ #include <iostream.h> bool ParImpar(int Num) { if (Num % 2 == 0) return true; else return false; } int _tmain() { int n; cout << "Introduzca un numero > "; cin >> n; if (ParImpar(n)==true) cout << "El numero es par..." << endl; else cout << "El numero es impar..." << endl; system("pause>nul"); return 0; }
Programado en C++ Builder.
Bloc de notas en C++ Builder
14 may
Estaba aburrido, no tenía nada que hacer, así que me puse a programar algo en C++.
Éste es un bloc de notas sencillo, pero con las funcionalidades esenciales. Perdonen si hay errores o si el código no está completamente optimizado, pues no programo mucho en este lenguaje.
Espero sirva de base o mejor dicho de ejemplo.
Programado en: Borland C++ Builder
Descargar: Box.net – Notepad(C++).rar

