27 abr 2020

Instalación y configuración de Visual Studio Code.

Hola, bienvenido.

Si eres nuevo en el área de la programación seguro estarás buscando las herramientas necesarias para poder realizar tus primeros programas, si es el caso dejame recomendarte Visual Studio Code, este es un potente editor de código compatible con la mayoría de lenguajes de programación, esta herramienta es multiplataforma así que seguro la encontrarás muy fácil.

En esta ocasión haremos la instalación y configuración de VS code en Ubuntu y haremos la configuración necesaria para poder compilar nuestros programas realizados con el lenguaje C++.

1.- La manera más fácil de realizar la instalación es desde el centro de software de Ubuntu.



Selecciona instalar y listo, ya tienes VS Code.

2.- La otra manera de hacerlo es desde la terminal, para esto descargamos VS Code de la página oficial. https://code.visualstudio.com/

Una vez descargado, abrimos la terminal nos dirigimos a la ruta donde tenemos nuestra descarga de VS Code y escribimos la siguiente instrucción.

sudo apt install ./<file>.deb

Con esto ya debes tener instalado VS Code.
Para verificar que tenemos instalado el compilador, abrimos una terminal y escribimos lo siguiente:
gcc -v

Debemos ver la versión del compilador que tenemos.

Ahora procedemos a instalar las herramientas del compilador GNU y del debugger, con el siguiente comando:

sudo apt-get install build-essential gdb


Abrimos nuestro VS Code e instalamos las herramientas para poder compilar nuestros programas, para esto observamos la ventana de bienvenida, en la parte derecha observamos Customize -> Tools and languages, seleccionamos esa opción y nos mostrará un listado con una gran variedad de lenguajes de programación, pero de momento solo nos enfocaremos en C++




Una vez instalado vamos a realizar un pequeño ejemplo, seleccionamos del menú superior del editor la opción file -> new file para crear un nuevo archivo y lo guardamos como holaMundo.cpp, ingresamos el siguiente código en el editor de VS Code.

#include<iostream>
int main() {
     std::cout << "Hola mundo.\n";
     return 0;
}

Antes de poder compilar nuestro programa debemos realizar un último paso.
Del menú superior seleccionamos terminal -> Configure Default Build Task, esto nos desplegará un listado y seleccionamos la siguiente opción:

C/C++: g++ build active file




Esto nos creará un archivo llamado Tasks.json, el cual tendrá un aspecto similar a la siguiente imagen.




En otro momento explicaremos mas a detalle este archivo, ahora nos enfocaremos en compilar nuestro programa.
Del menú superior seleccionamos terminal -> Run Build Task y observaremos un recuadro en la parte inferior similar a la siguiente imagen.




Esto compilará nuestro programa, para poder ejecutarlo presionamos el icono de +, situado en la parte superior derecha de la consola donde se muestra el mensaje del compilador.
Observaremos una terminal en la cual podemos ver los archivos de la carpeta donde hemos guardado nuestro programa.



El comando para ejecutar nuestro programa es ./holaMundo
Y así hemos creado nuestro primer programa en C++ usando VSCode.

Espero que este breve tutorial haya sido de su agrado.

C++

Curso de programación en C++.

Este blog será utilizado como apoyo para el Curso de programación en C++.

Contenido.

 1.- Instalación y Configuración de Visual Studio Code en Ubuntu.


Espera nuevo contenido muy pronto.
 

6 oct 2013

Juego de la vida en C

Hola, esta ves les muestro un programa que realice en C, y este es el juego de la vida, a mi parecer es un programa bastante bueno de implementar si se esta aprendiendo a programar y esto es debido al uso de funciones que se utilizan para su creación.

El código de este programa lo muestro a continuación, no explico el código ya que a mi parecer es algo sencillo de entender, pero si a alguien tiene dudas me lo pueden hacer saber y con mucho gusto les explico cada linea del archivo.

Sin mas que decir muestro el código.


/***********IMPLEMENTACION DEL JUEGO DE LA VIDA****************
** Autor: Jonathan Cruz Orozco.
*/

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
#include <time.h>

//cantidad de filas y columnas
#define COLS 40
#define FILS 20

//ciclo de repeticiones
#define NoCicloVida 200

//numero minimo de celulas vivas que han de rodear a una celula viva para que no se muera
#define NoMin 2 //2
//numero maximo de celulas vivas que han de rodear a una celula viva para que no se muera
#define NoMax 3 //4
//numero minimo de celulas vivas que han de rodear a una celula muerta para que vuelva a vivir
#define NoMinVive 2 //2
//numero maximo de celulas vivas que han de rodear a una celula muerta para que vuelva a vivir
#define NoMaxVive 3 //3

//espacio donde estaran las celulas
char vecindad[FILS][COLS];

//Reglas para vivir o morir
int vida[4] = {NoMin,NoMax,NoMinVive,NoMaxVive};

/*****************************+FUNCIONES PROTOTIPO+***************************/
void vecindadInicial();
void poblarVecindad();
void pintarVecindad();
int analizarVecinos(int,int);
void cicloCelular();
/*****************************************************************************/

void vecindadInicial(){
    int i,j;
    for (i = 0; i < FILS; i++){
        for (j = 0; j < COLS; j++){
            vecindad[i][j] = '_';
        }
    }
}

void poblarVecindad(){
int fil,x,y;
srand(time(NULL));

//crear celulas de manera aleatoria
for (fil = 0; fil < COLS; ++fil){
y = rand()%COLS;
x = rand()%FILS;
if(vecindad[x][y]=='_')
vecindad[x][y]='O';
}
}

void pintarVecindad(){
    int i,j;
    for (i = 0; i < FILS; i++){
            printf("\n");
        for (j = 0; j < COLS; j++){
            printf("%c",vecindad[i][j] );
        }
    }
    printf("\n");
}

/*******************************
****                        ****
****        |_|_|_|         ****
****        |_|_|_|         ****
****        |_|_|_|         ****
****                        ****
********************************/

int analizarVecinos(int posf, int posc){
//contador de celulas (vecinos)
int vecinos = 0;
if(posf-1 >= 0 && posc-1 >= 0)
if(vecindad[posf-1][posc-1] == 'O')
vecinos++;
if(posf-1 >= 0)
if(vecindad[posf-1][posc] == 'O')
vecinos++;
if(posf-1 >= 0 && posc+1 <= COLS-1)
if(vecindad[posf-1][posc+1] == 'O')
vecinos++;
if(posc-1 >= 0)
if(vecindad[posf][posc-1] == 'O')
vecinos++;
if(posc+1 <= COLS-1)
if(vecindad[posf][posc+1] == '0')
vecinos++;
if(posf+1 <= FILS-1 && posc-1 >= 0)
if(vecindad[posf+1][posc-1] == 'O')
vecinos++;
if(posf+1 <= FILS-1)
if(vecindad[posf+1][posc] == 'O')
vecinos++;
if(posf+1 <= FILS-1 && posc+1 <= COLS-1)
if(vecindad[posf+1][posc+1] == 'O')
vecinos++;

return vecinos;
}

void cicloCelular(){
int fil,col;
int n_vecinos;

//ciclo principal
for(fil = 0; fil < FILS; fil++){
for(col = 0; col < COLS; col++){
n_vecinos = analizarVecinos(fil,col);

//condiciones para que una celula no muera
if(vecindad[fil][col] == '_'){
if(n_vecinos == NoMinVive || n_vecinos == NoMaxVive)
vecindad[fil][col] = 'O';
else
vecindad[fil][col] = '_';
}
else if(vecindad[fil][col] == 'O'){
if(n_vecinos == NoMin || n_vecinos == NoMax)
vecindad[fil][col] = 'O';
else
vecindad[fil][col] = '_';
}
}
}
}

/* Funcion principal del programa*/
int main(int argc, char *argv[])
{
int i=0;

vecindadInicial();
poblarVecindad();
    
while(i < NoCicloVida){
pintarVecindad();
usleep(100000);
system("clear");
cicloCelular();
i++;
}

return 0;
}

29 sept 2013

PHP

En esta sección se mostraran algunos ejemplo básicos sobre el uso de PHP.

PHP y lenguaje C.

Ejecutar programa en C desde el navegador con PHP.

Hola, en esta ocasión quiero compartir un pequeño ejemplo de como ejecutar un programa hecho en lenguaje C desde el navegador usando PHP.

Para poder realizar este ejemplo debemos de tener lo siguiente instalado en nuestro ordenador:

  • Servidor HTTP Apache.
  • PHP 5.
  • gcc

Para esto se uso una distribución de Linux (Ubuntu).

Bueno, pues manos a la obra.

Abrimos un editor de texto para crear nuestro programa en lenguaje C, para esto yo usaré sublime text, el cual a mi parecer es muy bueno. Copiamos el siguiente código en el editor y lo llamamos prueba.c
#include <stdio.h>

int main(int argc, char *argv[])
{
    char* mensaje;

    if(argc > 0)
    {
        mensaje = argv[1];


        printf("<H1>Ejecutar archivos C desde php</H1>");
        printf("Prueba de envio de parametros desde php<br>");
        printf("El mensaje es: %s<br>",mensaje);

    }
    else
        printf("Error: argumentos no validos\n");
return 1;
}


Podemos observar que he utilizado las etiquetas de html para hacer el salto de linea y el encabezado de la página, pasamos a compilar nuestro programa.

 Ahora es turno de nuestro archivo .php

En nuestro editor de texto escribimos lo siguiente:

<html>
<head><title>Mensaje php-c</title>
</head>
<body>
<?php
    $result = exec("./prueba hola");
    echo $result;
?>
</body>
</html>


Para poder ejecutar nuestro programa en C debemos tener nuestro ejecutable en el mismo nivel que nuestro archivo de php.

Notemos que ejecuto el programa y le paso como argumento la palabra "hola" , para confirmar el buen funcionamiento del programa.

Vamos a nuestro navegador y accedemos a nuestro servidor local, en mi caso sería:

localhost/exec/index.php

Si todo a salido bien debemos observar algo similar a la siguiente imagen.





Espero que este pequeño aporte les ayude, hasta la próxima.







10 jun 2013

Montar partición con formato NTFS en Linux.

Acceder a partición NTFS desde Linux.

En esta ocasión quiero compartir algo que posiblemente sea de ayuda. Esto es el montar una memoria USB con formato NTFS en un sistema Linux. Como podrán notar este tipo de particiones no acepta los comandos de Linux, como cambiar propietario y permisos a un archivo.

Para lograr el cambio de propietario y de permisos en un archivo haremos uso de ntfs-3g. Para saber mas acerca de esta herramienta pueden consultar la siguiente página www.tuxera.com o escribir en la terminal: man ntfs-3g.

Pasos a realizar.


  • Conectar la memoria USB (con formato NTFS) en su equipo.
  • Abrir una terminal como super usuario.
  • Conocer el punto de montaje, para esto escribimos escribimos en la terminal mount.

    Ubicamos nuestra memoria en el mensaje desplegado, en mi caso esta montada en:
    /dev/sdc1 on /run/media/root/TUGAMAN. Lo importante aquí es la ruta /dev/sdc1
  • Dentro del directorio /media/  creamos una carpeta que nombraremos ntfs, escribimos en la terminal:
    mkdir /run/media/ntfs
  • Desmontamos la memoria, para esto en la terminal escribimos:
    umount /run/media/root/TUGAMAN, deben cambiar la ruta anterior por el nombre que a ustedes se les presento.
  • Ahora montamos de nuevo la unidad USB pero ahora hacemos uso de ntfs-3g, escribimos en la terminal:
    mount -t ntfs-3g -o permissions /dev/sdc1 /run/media/ntfsObservaremos el siguiente mensaje en la consola:
    Using default user mapping.
Si todo ha salido bien ya pueden cambiar permisos y propietarios a cada archivo de manera individual.
 
Espero les se de ayuda.
Hasta la próxima.