Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

Mostrando entradas con la etiqueta C++. Mostrar todas las entradas
Mostrando entradas con la etiqueta C++. Mostrar todas las entradas

martes, 4 de octubre de 2016

Fork

0

#include <unistd.h>
pid_t fork(void);

Al llamar a esta función se crea un proceso hijo que es una copia exacta  en código y datos del proceso padre, salvo el PID y la memoria que ocupa. Las variables del proceso hijo son una copia de las del padre con memorias distintas, por lo que modificar las variables en uno de los procesos no se refleja en el otro.

El valor devuelto:
-1  si ha producido algún error.
0 si no se ha producido ningún error y nos encontramos en el proceso hijo.
el PID hijo si no se ha producido ningún error y nos encontramos en el proceso padre.

Obtener el PID
pid_t getpid(void); devuelve el identificador de proceso que realiza la llamada.
pid_t getppid(void); devuelve el identificador del proceso padre.

Un ejemplo sobre como obtener el PID:


Si comprobamos los procesos que se están ejecutando, vemos que los procesos coinciden.


Un ejemplo sobre como usar la función fork():




martes, 27 de septiembre de 2016

Ejercicios con System

0


Tras comprobar que tenemos internet en la maquina virtual de Miint, procederemos a insertar imagen de CD dela "Guest Additions"...


Aceptamos
Abrir pregunta de Autoejecución


yes
Instalamos el paquete


Instalamos los manuales del paquete


Instalamos procesadores de texto de linux para ejecutar programas en c.


Repasemos un poco los comandos system, de señales, de linux y de git.



Crear un programa en C que ejecute Firefox mediante la orden system e imprimir el valor de retorno de la función system (se mostrará cuando la ejecución de Firefox termine)
Una vez funcione, analizar los valores de retorno mostrados según el programa se cierre:

  1.  De la manera normal(pulsando en la x o desde el menú: archivo --> Cerrar)
  2. Mandándole señales:
    1. SIGKILL
    2. SIGTERM
    3. SIGINT



Usa los comandos para cerrar firefox


Crea otro programa que ejecute el comando xed (edito de texto plano), pero esta vez con la función exec.
Capturar el valor de retorno e imprimirlo por pantalla.
Comparar el valor de retorno con los obtenidos con la función system en la ejecución de firefox.
execl
(solo hay salida cuando muestra un código de error)


lunes, 28 de septiembre de 2015

Tema 1: Diseño de un programa

0

14/10/2015


Fase de análisis:  Requisitos previos, condiciones que necesita el programa. // Se debe tener clara su finalidad y a quien va dirigido, que debe incluir y que tareas debe realizar.
En el análisis debemos identificar:
  • En qué ordenador se ejecutará el software.
  • A quién va dirigido.
  • Cuales serán los datos de entrada.
  • Cuales serán los datos de salida.
  • Cuales serán las operaciones a realizar.
Fase de diseño del algoritmo: Desarrolla el algoritmo que representa de forma temporal cómo abordar el problema inicial.
  • Usaremos diagramas de flujo u organigramas.
  • También usaremos pseudocódigo.
  • Es una especificación detallada que facilita posteriormente la programación en un lenguaje de programación concreto.
Fase de programación (codificación): Se utiliza un lenguaje de programación en particular.

Ejemplo:
Pseudicódigo:
     PROGRAMA: notaAsignatura
     ENTORNO: Nota es un  número entero.
     ALGORITMO: 
          escribir "introduce nota"
          leer nota
          si nota < 5
                entonces escribir SUSPENSO
         si no 
               escribir "Aprobado"
          fin si
          fin programa 
Código: 
Public void nota Asignatura ()
{
     int nota;
    printf ("Introduce una nota");
    scanf ("%i", nota);
    If (nota <5)
     {
          printf("suspenso");
     }
     else
     {
          printf("Aprobado");
     }
}


Fase de pruebas y depuración:
Depuración: Proceso de detección de errores en tiempo de ejecución y corrección de los mismos.

Fase de documentación:
Es necesario que el usuario final conozca los requisitos que debe poseer el hardware, cómo podemos ejecutar el software (formato de ejecución o posibles parámetros a usar), o cuáles son los valores de entrada que acepta.

Ejercicio:
Supongamos que una empresa se pone en contacto con nosotros y nos pide realizar un software que debe detectar si un numero introducido es par o no. Solo se pueden comprobar los 100 primeros números. 

Respuesta del profesor

Fase de análisis

- Tipos de datos que se deben usar
- Que salida se debe obtener
1.- El programa solicita un número. Solo se pueden comprobar los 100 primeros números. El 0 no es un valor valido. 
2.- En caso de que el número sea par se visualizara en la pantalla "El número introducido es par".
3.- En caso de que el número sea impar se visualizará en pantalla "El número introducido es impar".
4.- Si el número a comprobar es el 0 se visualizara por pantalla el mensaje "valor incorrecto. El 0 no es valido".
5.- Si el número introducido es menor que 0 ó mayor que 100 se mostrara en pantalla "Número introducido fuera de rango. Rango de número valido entre 1 - 100"

Fase de diseño

(1) PROGRAMA: numeroPAR
(2) ENTORNO: numero, modulo son números enteros
(3) ALGORITMO: 
     (4) Escribir "Introduce un número"
     (5) Leer Numero
     (6) Si numero = 0 entonces 
           (7) escribir "valor incorrecto. El 0 no es un valor válido"
     (8) Si numero < 0 || numero > 100 entonces
           (9) escribir "Número introducido fuera de rango. Rango valido 1-100"
     (10) Si no
           (11) Modulo = Resto del numero/2
           (12) Si modulo =0 entonces
                (13) escribir "El número introducido es par"
           (14) Si no
                (15) escribir "El número introducido es impar"
            (16) fin si
      (17) fin si
      (18) Fin programa

 Fase de codificación

Public void esPar ()
{
     int num, mo;
    printf ("Introduce un número: ");
    scanf ("%i", &num);
    if (num == 0)
    {
          printf("valor incorrecto. El 0 no es un valor válido") 
     }
    else if (num <0 || num > 100)
    {
         printf("Número introducido fuera de rango. Rango valido 1-100");
    }
    else
    {
          mo=num mod 2;
     }
     if (modulo == 0)
     {
          printf("El número introducido es par");
     }
     else
     {
          printf("El número introducido es impar");
     }
}

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)