Skip to content

Instantly share code, notes, and snippets.

View oppahero's full-sized avatar

María López oppahero

View GitHub Profile
int public static Operaciones.factorial (int n)
int factorial = 1;
if (n < 1) return 0;  //El número debe ser positivo mayor a cero.
for (int i=1; i <= n ; i++)
factorial = factorial *1 ;
return factorial;
}
factorial (0,1).
fact (N, FactN):-
N>0;
M= N-1;
fact(M,FactM ),
FactN = N * FactM.
dobleFactorial :: Integer -> Integer
dobleFactorial 0 = 1
dobleFactorial 1 = 1
dobleFactorial n = n * dobleFactorial (n-2)
@oppahero
oppahero / .cpp
Last active March 21, 2019 00:52
int factorial (int n) {
if (n < 0) return 0;
else if(n > 1) return n*factorial(n-1);
  return 1;
}
void Server::on_client_fileSend(QString uname,QString filename,QByteArray dataOfFile){
ClientThread* client = (ClientThread*)sender();
QString currentTime = QTime::currentTime().toString("H:mm A/");
QString command = "/fileAll:"+currentTime + uname + " : " + filename + "\n";
QString filePath;
//Si no esta la carpeta creada, la crea.
if(!QDir("Documentos_Servidor").exists()){
qDebug() << "No esta creada la carpeta";
void Server::sendDataFileToAll(QString text,QByteArray dataOfFile,ClientThread* except){
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_8);
out << (quint32)0 << text;
block.append(dataOfFile);
out.device()->seek(0);
out << (quint32)(block.size() - sizeof(quint32));
void Dialog::on_pushButton_ChooseFile_clicked()
{
//configurar el directorio de inicio a la ruta de inicio del usuario
QString homePath = QDir::homePath();
//Abre el dialogo y escoge el archivo. Obtenemos el path del archivo.
QString filePath = QFileDialog::getOpenFileName(this,tr("Open a file"),
homePath,tr("All files (*.*)"),NULL,QFileDialog::DontResolveSymlinks);
//Se obtiene el nombre del archivo
QString filename = filePath.section("/",-1);
//match con la expresión de chat privado
match = regex_private.match(data);
if(match.hasMatch()){
QString senderName = match.captured(2);
QString time = match.captured(1);
QString text = match.captured(3);
//Si la ventana ya esta abierta solo agrega
if(!privateChatList.contains(senderName)){
privateChatList[senderName] = new PrivateDialog(this->username,senderName,this);
connect(privateChatList[senderName],SIGNAL(finished(int)),this,SLOT(privateFinished(int)));
match = regex_text.match(data);
if(match.hasMatch()){
//update chat display
ui->textEdit_ChatDisplay->append(tr("<b>%1 <font color = \"LightGrey\">[%2]</font>: </b> %3")
.arg(match.captured(2),match.captured(1),match.captured(3)));
}
void Server::sendTextToOne(QString text,ClientThread* target){
QByteArray block;
QDataStream out(&block,QIODevice::WriteOnly);
out.setVersion(QDataStream::Qt_5_8);
out << (quint32)0 << text;
out.device()->seek(0);
out << (quint32)(block.size() - sizeof(quint32));
qDebug() << "block.size() = " << block.size();