Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - AlbertoBSD

#341
Jajajaja tengo que ver bien lo de los años bisiestos, mientras tanto segun tu enunciado quedaria asi no?

bool fechaValida(const int day, const int month, const int year){
int dias_mes[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
bool valido = true;
if(year % 4 == 0 && (!(year % 100 == 0) || (year % 400 == 0) ))
dias_mes[1] = 29;
if(month < 1 || month > 12 || day < 1 || day > dias_mes[month-1]) //Unica condicion
valido = false;
return valido;
}
#342
Se podria dejar en una sola funcion:

#include<stdio.h>
#include<stdbool.h>

bool fechaValida(const int day, const int month, const int year);

int main() {
if(fechaValida(29,2,2004)) {
printf("Fecha Valida\n");
}
else {
printf("Fecha NO Valida\n");
}
}

bool fechaValida(const int day, const int month, const int year){
int dias_mes[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
bool valido = true;
if(year % 4 == 0)
dias_mes[1] = 29;
if(month < 1 || month > 12 || day < 1 || day > dias_mes[month-1]) //Unica condicion
valido = false;
return valido;
}
#343
Programación C/C++ / Re: Libros C
10 Diciembre 2018, 17:28 PM
Pues si leiste la lista de libros te daras cuenta que el primero que te recomiendan es Co-Escrito por el Creador del lenguaje C. Su lectura es muy recomendada por motivo historico.


Name: El Lenguaje de Programación C
Author(s): Brian W. Kernighan, Dennis M. Ritchie
Hardcover: 294 pages
Publisher: Pearson Educación; 2nd edition (1991)


https://www.google.com/search?q=El+Lenguaje+de+Programación+C

Saludos!
#344
Yo me apunto. Podría programar algo del kernel relacionado con el acceso a archivos.

Saludos!
#345
Desarrollo Web / Re: Problema con data de Ajax
8 Diciembre 2018, 18:23 PM
Tremendo Palm Face  :xD :xD

Por lo mismo dije que era de lo mas tonto, no me fije en ese detalle.

Muchas gracias!! ;-)
#346
Token:

Citara thing serving as a visible or tangible representation of a fact, quality, feeling, etc.


Dame frase: Token1 Token2 Token3 Token4
1 -> Token1
2 -> Token2
3 -> Token3
4 -> Token4
#347
Hola que tal espero y me puedan ayudar, tengo un error de lo mas tonto. Sin embargo no se por que el jquery no esta enviando el data mediante Ajax.

JS
Código (javascript) [Seleccionar]

function local_search() {
$.ajax({
async: true,
type: "GET",
accepts: "application/json",
url: "/api/search",
data: { s: $("#input_str").value },
success: function (result) {
alert(result.ok);
}
});
}


HTML:
Código (html4strict) [Seleccionar]

<div>
<input id="input_str" type="text">
<button onclick="local_search();">Buscar</button>
</div>


Puedo ver que si hace la peticion al servidor, pero no envia nunca la data

RAW Request

Host: localhost
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: undefined
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost/
X-Requested-With: XMLHttpRequest
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache





Solución

Codigo Incorrecto
data: { s: $("#input_str").value },

Codigo Correcto

[code] data: { s: $("#input_str").val() },[/code]
#348
Mejor di que quieres que te hagan la tarea.


El codigo presenta varios problemas, el numero de espacios no puede ser mas de 10, ya que definimos *vector[10], se podria hacer de forma dinamica para aceptar "infinitos" pero eso ya involugra mas codigo.


#include<stdio.h>
#include<string.h>

int main() {
char cadena[100];
char *token;
char *vector[10];
int i = 0;
printf("Ingrse una frase: ");
fgets(cadena,100,stdin);
token = strtok(cadena," ");
do {
vector[i] = token;
printf("%i -> %s\n",i+1,vector[i]);
i++;
token = strtok(NULL," ");
}while(token != NULL);
}
#349
Ademas se ser un lenguaje muy completo, C es un lenguaje que marco un antes y después en lo que a programación se refiere.

El sistema base la mayoria de los sistemas operativos esta escrito en lenguaje C, existen ciertas rutinas que son dependientes del procesador y cambian de un tipo de set de instrucciones en ensamblador a otro, sin embargo siempre puedes tener un código en C totalmente portable que al final sera optimizado para cada procesador mediante el compilador. Motivo por el cual a permanecido.

Si bien es cierto que Java es tambien portable este cambia mas rapido, ya que asi como lo mencionas el lenguaje a cambiado con los años, métodos que se marcan como "deprecated", Java depende de que exista una maquina virtual instalada en el sistema operativo y C no teniendo el ejecutable ya funciona en el sistema para el que fue compilado

C y C++ admito que no es facil de aprender, sin embargo conociendo C, te das una idea de las estructuras de control, variables y en general de todos los elementos de un lenguaje de programación, con C++ apredes el paradigma de la programación Orientada a Objetos.

He aprendido en  mucho tiempo varios lenguajes desde Ensamblador, C, C++, JAVA, javascript, perl, python, PHP, VB, C# entre otros, y la verdad  C a sido y sera mi lenguaje favorito.

Saldos!
#350
Tienes razon por alguna razon el fseek no esta procesando la ultima parte del  stdin. Cambie el printf por perror para ver que error marca y dice

if(flagValidacion)
perror("fseek");


fseek: Invalid argument

Hay que ver el source code de fseek y ver exactamente que parte es la que falla. Y ver si es que de alguna manera el sistema guarda esos bytes saltados, cosas que no creo. Pero hay que revisar.

La otra opcion es lo que comente de revisar el ultimo valor leido por fgets y determinar si queda algo en buffer de entrada. Ejemplo:


#include <stdio.h>

void myflush(const char *ptr,int size) {
int i = 0;
while(i < size && ptr[i++] != 0xA);
if(i == size)
while (getchar() != 0xA);
}

int main() {
char temp[10];
int flagValidacion ;
while(1) {
printf("> ");
fgets(temp,10,stdin);
myflush(temp,10); // Tiene que ser el ultimo arreglo leido y la ultima cantidad marcada con fgets
printf("cadena: %s\n", temp);
}
}


O bien realizarlo con una implementacion propia de fgets que le quite ese "pendiente" al programador. Incluso como un extra le borras al final ese "Enter" si es que existe.


#include <stdio.h>

void myfgets_stdin(char *ptr,int size) {
int i = 0;
fgets(ptr,size,stdin);
while(i < size && ptr[i++] != 0xA);
if(i == size)
while (getchar() != 0xA);
else
ptr[i-1] = '\0';
}

int main() {
char temp[10];
int flagValidacion ;
while(1) {
printf("> ");
myfgets_stdin(temp,10);
printf("cadena: %s\n", temp);
}
}


Saludos