Ir al contenido principal

Entradas

Mostrando entradas de septiembre, 2017

Error " permission denied"

El ld.exe es el linker, puede dar problemas en dos casos: que se este ejecutando una aplicación bajo la misma ruta que el archivo de salida, es decir que se compila y ejecuta la aplicación, no se cierra, se modifica el código y se recopila; la otra cosa es de permisos : Windows no permite que el usuario no administrador trabaje directamente en directorios que no estén en su ámbito bloqueando el permiso de la aplicación para ejecutarse en los computadores.  Tomado de: http://www.forosdelweb.com/f96/permission-denied-compilar-ejecutar-1043557/ Como lo vemos el error es generado en su mayoría de veces por un descuido del propagador, que compila y ejecuta el programa, realiza cambios en el proyecto y vuelve a ejecutarlo sin cerrar la ventana de ejecución previamente abierta, generando errores en la ejecución y un molesto mensaje de dialogo cada vez que volvamos a compilar y ejecutar el programa  El problema puede ser resuelto fácilmente cop...

Como comprobar un algoritmo

En una de los aspectos en que mas se falla a la hora de crear un programa, es  que no se realiza la tarea de crear los algoritmos respectivos que nos ayudaran con la solución del problema, o no los revisamos. Para revisar un programa se puede hacer de manera mental pero no se recomienda (a menos de que ya se posea una capacidad y práctica para desarrollar esta labor), pero la mejor manera de probarlo, haciendolo, con esto se refiere al hecho de que se desarrolle el programa sin haberlo creado en código. Para desarrollar bien esta tarea, es bueno imaginar que uno es el propio computador, así uno mismo crea sus memorias y reemplaza los datos como si se ejecutara de manera manual. Fuente: https://www.aprenderaprogramar.com/index.php?option=com_content&view=article&id=277:como-comprobar-algoritmos-verificacion-mental-y-verificacion-prueba-por-seguimiento-escrito-cu00230a&catid=36&Itemid=60

La importancia del orden

En la programación como en la vida, el orden de los programas puede ser determinante al momento de llevar a cabo cualquier acción. Especialmente en programación, ser ordenado con los algoritmos y el código fuente puede sernos muy útil; Cuando redactamos el código fuente, debemos procurar dejar las funciones de primer orden (generales) a ras del borde izquierdo, e ir desglosando las demás funciones con una sangría de una, dos o tres espacios dependiendo la importancia de la función en el código Para aplicar la sangría utilizaremos la tecla Tab del teclado la cantidad de veces que sea necesario, es importante también hacer las cosas con calma y revisar cada pequeño detalle; hasta un punto y coma puede generar errores en nuestro código Ejemplo int VerificarFC(int matriz[3][3]){ int gano=0; int f=0; for(f=0;f<3,f++;){ if(matriz[f][0]==matriz[f][1]){ if(matriz[f][0]==matriz[f][2]){ if(matriz[f][0]!=0){ gano=1; } } } } }

Variables Aleatorias

Como ya hemos visto, por el momento las variables pueden tener 3 tipos de valores; un valor fijo dado por el algoritmo (ejemplo 1) variables determinadas por el usuario y el nuevo tipo de valores; un número aleatorio entre un rango de datos que cambia cada vez que se ejecuta el algoritmo En “C” las variables aleatorias están dadas por el prefijo equivalente al dato que lleven  y su valor dependerá, en este caso de la variable time (ver entrada “Time, la variable en cambio perpetuo”) y según esta variable, la función "rand();" le asignará un valor aleatorio a nuestra variable - Las funciones de tipo "Void" no retornan ningún valor Esta función aleatoria y otras están alojadas en las bibliotecas <time.h> y < stdlib.h   > en lenguaje “C” que se encargan de todo lo que tiene que ver con azar  Ejemplo 1:  int x=2; 

Time, la variable en perpetuo cambio

Time es un variable de cambio constante que muestra la cantidad de segundos pasados entre el primero de enero de 1970 y la fecha actual. Es una variable muy útil y curiosa, ya que no requiere una declaración para que funcione y es una variable que no tiene un valor constante el cual varía de tal forma que no pueden haber dos mismos valores iguales de la variable. Gracias a estas cualidades, podemos utilizarla para programar algoritmos que tengan que ver con probabilidad, ya que es muy difícil, si no imposible, calcular el momento preciso en el cual la variable provocará que el usuario obtenga el resultado que busca desordenado todas las funciones aleatorias que siguen una secuencia respecto a un número Es una variable de la biblioteca <time.h> de “C” 

Los Casinos y la programación

Cómo lo hemos demostrado a lo largo de estas entradas, la programación está en todos los lugares del mundo, por eso no es raro decir que la programación está presente también en nuestros juegos La probabilidad y el azar pasaron de ser una relación estadística para convertirse en entretenimiento con ayuda de la programación; desde los años 1900´s los populares casinos salieron a la luz con máquinas que permitían apostar dinero con base a la probabilidad y la suerte de las personas. Este desarrollo fue posible gracias a la introducción del micro controlador en dichas máquinas, que con un algoritmo simple permitía está realizar apuestas entre una persona y una máquina. La suerte que  dominaban estas máquinas, lejos de ser el producto de complejos procesos matemáticos o de azar e sí mismo, el día de hoy podemos describirlo como operaciones entre variables cambiantes dadas por una selección aleatoria que realiza nuestro algoritmo. Claramente esta suerte siempre va a favorecer a...

Arreglos

Cuando tenemos muchas variables de un mismo tipo podemos agruparlas en un arreglo. Estos arreglos se caracterizan por tener una cantidad de variables mayor a 3 y se utilizan para comparar muchas variables a la vez sin tener que declarar una a una individualmente. Los arreglos se utilizan dando la característica de las variables a guardad y en corchetes cuadrados "[]" la cantidad de variables que va a almacenar. Cuando deseemos nombrar la variable, utilizamos el nombre del arreglo y entre paréntesis el número de la casilla que ocupa en el arreglo, considerando que la posición menor es 0 y aumenta cada casilla. Ejemplo: Quiero sacar el promedio de las notas de un curso. float promedio; int arreglo[5];  int i=0;  while(i<5){ arreglo(i);  i++;} i=0; int acumulador=0; while(i<5){ acumulador= arreglo(i)+acumulador; i++;} promedio=acumulador/2; printf("%f", promedio); Cómo vemos, no hubo necesidad de crear las 5 variables que necesitam...

Algoritmo de una sumatoria

En cálculo, una sumatoria esta definida cómo el resultado de la suma de dos términos que varia en un intervalo definido; es decir, la suma de una cantidad con un contador Para representar este algoritmo en programación debemos pensar en la sumatoria como un ciclo de sumas, y debemos considerar 3 variables; un contador, un intervalo y un acumulador. La función del acumulador va a ser guardar los resultados de la suma del contador. Entonces, definimos el intervalo y colocamos el ciclo haciendo que nuestro contador aumente en la cantidad que queramos hasta que llegue al intervalo, mientras eso se cumpla, vamos a sumarle a contador lo que esta guardado en su memoria mas el contador terminando de esta manera el algoritmo

Biblioteca

El lenguaje de programación "C" divide sus funciones por bibliotecas según sus temáticas; haciendo que el programador pueda elegir cual sea la más conveniente para su trabajo sin saturar su computador con funciones innecesarias. Math.h es la biblioteca de "C" que contiene gran parte de las funciones aritméticas y trigonométricas más especificas que las fundamentales (suma, resta, multiplicación, división) y funciones de aproximación de decimales. Para aplicar la biblioteca Math.h tenemos que escribirla a modo de encabezado de la siguiente manera: #include <Math.h>  Ademas de la inclusión de operadores aritméticos mas complejos, la biblioteca incluye las principales funciones trigonométricas con sus inversas y algunas funciones hiperbólicas, aquí una pequeña lista de las funciones de esta biblioteca Tomado de:https://image.slidesharecdn.com/11funciones-1230518770746262-2/95/funciones-lenguaje-c-14-728.jpg?cb=1230490021

Funciones simples

El objetivo de abstraer un problema es hallar funciones más simples que nos ayuden a completar nuestra tarea a realizar, estas funciones deben ser simples, cortas y retornar un valor en la mayoría de los casos. Ejemplo La función que escribamos en nuestro código fuente debe tener un nombre corto, conciso y explicativo que en 2 o 3 palabras defina lo que hace la función, en seguida de su nombre el tipo de variable que se va a ingresar,  después de esto va el cuerpo de la función con todos los procesos lógicos o aritméticos que tenga que realizar la función y por último se decide si debe retornar un valor o no. En caso de que sea así, se debe especificar el valor de la variable que va a retornar Las funciones que escribamos en el código deben estar relacionadas en la función "Main" de tal manera que cumplan nuestro objetivo. Las funciones serán llamadas por su nombre, la variable que van a afectar y el nombre de la variable que va a representar el valor retornado por l...

Standard input-output header (#Stdio.h)

La biblioteca Standard Input-output header o por su siglas en inglés Stdio.h es un archivo de cabecera que contiene las definiciones de operaciones básicas de entrada y salida de datos. Este archivo de cabecera debemos colocarlo al principio de nuestro codigo siempre que queramos ingresar y sacar datos del programa, pues contiene las funciones necesarias para este proceso alojadas en bibliotecas que el programa reconoce deben ser utilizadas para cumplir su propósito. Tomada de: https://image.slidesharecdn.com/caprogramminglanguage-140909235514-phpapp01/95/c-a-programming-language-i-32-638.jpg?cb=1502691207

Abstracción de problemas

Cuando tenemos un problema muy grande, demasiado complejo para resolverse por si mismo, acudimos al método de la abstracción; El método de la abstracción consiste en tomar este gran problema y convertirlo en pequeños problemas que podamos resolver paso a paso. Abstraer los problemas para convertirlos en situaciones más fáciles de realizar es una cualidad del programador y del ingeniero contemporáneo, que debe organizar sus pensamientos, capacidades, talento humano y recursos en pequeñas tareas más plausibles. En programación, tenemos que tomar nuestra necesidad y dividirla en funciones que nos ayuden a suplir esta necesidad. Ejemplo; Requerimos un programa que tome un numero del usuario, y a los numeros primos menores o iguales de 23 les imprima su factorial, de no ser así, que imprima su sumatoria de 0 hasta el número -Para resolver este problema por el método de abstracción debemos determinar los problemas a solucionar uno por uno -Números primos -Factorial -Sumatoria ...