elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


  Mostrar Temas
Páginas: 1 2 3 4 5 6 [7] 8
61  Programación / Programación C/C++ / [C] Duda con bucle en: 1 Septiembre 2016, 22:39 pm
Buenas, tengo una duda sencilla, la cosa es que dentro de un while tengo dos bucles.

Primer bucle si se cumple, cambia el "flag" del while por lo que debería terminar allí y no ejecutarse el segundo bucle. La cosa es que al cumplirse el primer bucle y cambia correctamente el flag, primero ejecuta el segundo bucle y luego termina el WHILE.

Ahora mi pregunta, ¿existe alguna manera de que se lea la condicion del WHILE dentro de este sin que sea con un IF?. Es más que nada una duda para ampliar conocimientos, y no meter IF's donde no sea necesario. Porque me parece ridículo tener un WHILE y salir de este mediante una condición.

Gracias!
62  Sistemas Operativos / Windows / [DUDA] Windows 10 en: 27 Agosto 2016, 17:33 pm
Buenas, vengo con una duda simple, a fin de informarme mas sobre el SO que utilizo, Windows 10, últimamente leo muchos comentarios de que trabaja con procesos en segundo planos que no debería, o bien "hace lo que quiere", ¿a qué se refieren con eso, en qué está fallando para que sea óptimo o eficiente?.

Leo muchos anti windows, pero pocos me fundamentan el por qué, por eso me dirijo hacia ustedes. Busco encariñarme con los open source, ayudenme.
63  Programación / Programación C/C++ / [C] Duda TATETI en: 25 Agosto 2016, 03:50 am
Buenas noches gente! Vengo con una duda, me pidieron hacer un trabajo práctico de un TATETI en C, hasta ahí vamos bien, nada dificil salvo hacer bien la estructura del juego que tengo pensado hacerla con *, acepto ideas.

Pero el problema viene con que la consigna dice que el juego debe estar preparado para jugar JUGADOR VS JUGADOR o JUGADOR VS COMPUTADORA. JvsJ lo tengo cocinado, justamente porque es pensar la estructura nada más, pero ahora en JvsC, ¿como hago?, es decir tengo que analizar las jugadas para que intente ganar la computadora, al menos lo veo así, lo hago con IF´s? estoy algo perdido.
Esa es una opción, otra seria que la PC ponga sus simbolos al azar, que tampoco sé como hacer para que elija al azar, y no sería muy divertido jaja.

Espero sus ideas, gracias!
64  Informática / Hardware / Laptop DELL, se queda pegada en: 20 Agosto 2016, 19:06 pm
Buenas, verán les informo de mi problema, hace 4 días que mi laptop se queda tildada o pegada al ejecutar un juego, mientras no ejecute ese juego, a decir verdad es el único que tengo y relaciono el problema con las aplicaciones "pesadas" que requieren de muchos recursos, no se me tilda, aunque la noto tal vez un poco lenta.

El tildado es brusco, es decir no puedo ejecutar nada, ni administrador de tareas, ni cerrar sesión ni nada, la pc deja de responder hasta las teclas de FN. Lo que hago al suceder esto es apagarla.

Es una DELL Inspirion 5558, con Windows 10, un i7 y 6 de RAM.

La verdad es que no tengo idea de dónde puede venir el problema, pero por lo menos quiero averiguarlo por mi cuenta para evitar llevarla a servicio técnico.

Lo único que hice fue formatearla por completo, ayer y sigue igual.

Cualquier ayuda que me puedan brindar se las agradezco, haré las pruebas que me pidan y si precisan alguna información solo postéenlo.

Muchas gracias!
65  Programación / Programación C/C++ / [C] Impresion de BASURA, rara en: 8 Agosto 2016, 02:08 am
Buenas noches, estoy trabajando con el IDE CodeBlocks y me resulto un problema.

Estaba por terminar el trabajo práctico, agregue dos funciones sencillas, el programa andaba a la perfección, cuando termino de agregarlas corro el programa y empieza a imprimir basura, revisé todo 20 veces, anulé lo agregado, no toque otra cosa mientras lo agregaba y ahora no me deja de imprimir basura.

Cerré el programa, volví a abrirlo, copié el código en un nuevo proyecto y aún así continúa haciendolo. No le encuentro la lógica, pienso que es un error del IDE en sí pero no sé como solucionarlo.

¿Alguna idea?

Dejo el código por las dudas, lo agregado fue todo lo relacionado a las notas maxima y minima, ya sea los "for" en el main y las funciones.

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

void carga(float al[], int x);
int ausentes(float al[], int x);
int presentes(float al[], int x);
int promociones(float al[], int x);
int aprobados(float al[], int x);
int desaprobados(float al[], int x);
float promedio(float al[], int x);
float max(float al[], int x);
float min(float al[], int x);

int main()
{
    int j, cantmax=0, cantmin=0;
    float alumnos[5], notamax=0, notamin=0;

    carga(alumnos,5);

    for(j=1;j<5;j++){
        printf("Alumno %d\t Nota %.2f\n",j,alumnos[j]);
    }

    printf("Cantidad de AUSENTES: %d\n",ausentes(alumnos,5));
    printf("Cantidad de PRESENTES: %d\n",presentes(alumnos,5));
    printf("Cantidad de PROMOCIONADOS: %d (Nota mayor o igual a 7)\n",promociones(alumnos,5));
    printf("Cantidad de APROBADOS: %d (Nota entre 4 y 7)\n",aprobados(alumnos,5));
    printf("Cantidad de DESAPROBADOS: %d\n", desaprobados(alumnos,5));
    printf("PROMEDIO: %.2f\n", promedio(alumnos,5));

    notamax=max(alumnos,5);
    notamin=min(alumnos,5);
    for(j=0;j<5;j++){
        if(alumnos[j]=notamax)
            cantmax+=1;
    }
    for(j=0;j<5;j++){
        if(alumnos[j]=notamin)
            cantmin+=1;
    }
    printf("NOTA MAXIMA: %.2f\tCantidad de alumnos con nota maxima:%d",notamax,cantmax);
    printf("NOTA MINIMA: %.2f\tCantidad de alumnos con nota minima:%d",notamin,cantmin);

    return 0;
}


void carga(float al[], int x){   //CARGA DE NOTAS

    int i, trunca=0;
    float nota=0, verif, resul=0;
    bool vof=false;
    al
  • ;

    while(nota>=0){
        nroal:
        printf("\nIngrese la nota a inscribir ");
        scanf("%f", &nota);
        printf("\nIngrese el numero de alumno a modificar ");
        scanf("%d", &i);

        if(nota>=1){            //PURGA DE NOTA INVALIDA Y CORRECCION DE DECIMALES
            while(nota>10){
                printf("\nNota erronea, vuelva a ingresar ");
                scanf("%f", &nota);
            }
            trunca=nota;
            resul=nota-trunca;
            if(resul>0 && resul<0.25){
                nota=trunca+0.25;}
            if(resul>0.25 && resul<0.5){
                nota=trunca+0.5;}
            if(resul>0.5 && resul<0.75){
                nota=trunca+0.75;}
            if(resul>0.75 && resul<=0.99){
                nota=trunca+1;}
            resul=0;
            trunca=0;

            }
            else if(nota<0){    //NOTA NEGATIVA
                break;
            }

        while(i>x || i<0){             //VERIFICACION ALUMNO
            printf("\nError en el numero de alumno, vuelva a ingresar ");
            scanf("%d", &i);
        }
        verif=al;
        if(verif>=1){           //VERIFICACION DE CARGA DE NOTA
            printf("\nEl alumno ya tiene inscripta la nota: %.2f", verif);
                goto nroal;
            }else{

        al=nota;}

    }
}

int ausentes(float al[], int x){    //CONTADOR DE AUSENTES
    int i, contador=0;

    for(i=1;i<x;i++){
        if(al<1)
            contador+=1;
    }
    return contador;
    }

int presentes(float al[], int x){   //CONTADOR DE PRESENTES
    int i, contador=0;

    for(i=1;i<x;i++){
        if(al>0.1)
            contador+=1;
    }
    return contador;
    }

int promociones(float al[], int x){ //CONTADOR DE PROMOCIONES
    int i, contador=0;

    for(i=1;i<x;i++){
        if(al>=7)
            contador+=1;
    }
    return contador;
    }

int aprobados(float al[], int x){   //CONTADOR DE APROBADOS
    int i, contador=0;

    for(i=1;i<5;i++){
        if(al>=4 && al<7)
            contador+=1;
    }
    return contador;

    }

int desaprobados(float al[], int x){    //CONTADOR DE DESAPROBADOS
    int i, contador=0;

    for(i=1;i<5;i++){
        if(al>0.1 && al<4)
            contador+=1;
    }
    return contador;
}

float promedio(float al[], int x){  //CALCULA PROMEDIO
    int i;
    float suma=0;

    for(i=1;i<5;i++){
        suma+=al;
    }
    return (suma/4);
    }


float max(float al[], int x){
    int i;
    float maxima=0;

    for(i=1;i<5;i++){
        if(al>maxima)
            maxima=al;
    }
    return maxima;
    }

float min(float al[], int x){
    int i;
    float minima=11;

    for(i=1;i<5;i++){
        if(al>0.1 && al<minima)
            minima=al;
    }
    return minima;
}

LA IMPRESIÓN DE BASURA SE DA EN: "//VERIFICACION DE CARGA DE NOTA". Esa parte no fue modificada desde que andaba.

¿Por qué en ese apartado?, pues cuando ingresaba una nota a un alumno que ya tenía cargada la nota, me saltaba error, mostraba la nota que ya estaba ingresada y volvia a pedir nota para otro alumno.
Ahora a la primera que quiero cargar una nota para el alumno 1, que no tiene nada me dice que ya tiene una nota registrada que es 0.000565657....

EDITADO: La BASURA la imprime en TODAS las cargas de nota.
66  Programación / Programación C/C++ / [C] Pasar Array como parámetro a funcion INT o FLOAT en: 8 Agosto 2016, 00:27 am
Buenas noches, verán me encuentro con un problema, estoy terminando un tp para la facultad, y me encuentro con que debo pasar un array a una funcion INT para que cuente los "ausentes", los "0", y me devuelva la cantidad de estos.

El tema es el siguiente, en el mismo programa tengo el pasaje de este mismo vector a una funcion VOID y me la devuelve a main sin problemas, cuando me la devuelve la quiero enviar así como está a la funcion INT, pero se envía con basura.

Les paso a poner el código: OBVIAR LA FUNCION VOID.

Código:
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

void carga(float al[], int x);
void ausentes(float al[], int x);

int main()
{
    int j, aus;
    float alumnos[5];

    carga(alumnos,5);

    for(j=1;j<=5;j++){
        printf("Alumno %d\t Nota %.2f\n",j,alumnos[j]);
    }

    ausentes(alumnos,5);

    return 0;
}


void carga(float al[], int x){   //CARGA DE NOTAS

    int i, trunca=0;
    float nota=0, verif, resul=0;
    bool vof=false;
    al[x];

    while(nota>=0){
        nroal:
        printf("\nIngrese la nota a inscribir ");
        scanf("%f", &nota);
        printf("\nIngrese el numero de alumno a modificar ");
        scanf("%d", &i);

        if(nota>=1){            //PURGA DE NOTA INVALIDA Y CORRECCION DE DECIMALES
            while(nota>10){
                printf("\nNota erronea, vuelva a ingresar ");
                scanf("%f", &nota);
            }
            trunca=nota;
            resul=nota-trunca;
            if(resul>0 && resul<0.25){
                nota=trunca+0.25;}
            if(resul>0.25 && resul<0.5){
                nota=trunca+0.5;}
            if(resul>0.5 && resul<0.75){
                nota=trunca+0.75;}
            if(resul>0.75 && resul<=0.99){
                nota=trunca+1;}
            resul=0;
            trunca=0;

            }
            else if(nota<0){    //NOTA NEGATIVA
                break;
            }

        while(i>x || i<0){             //VERIFICACION ALUMNO
            printf("\nError en el numero de alumno, vuelva a ingresar ");
            scanf("%d", &i);
        }
        verif=al[i];
        if(verif>=1){           //VERIFICACION DE CARGA DE NOTA
            printf("\nEl alumno ya tiene inscripta la nota: %.2f", verif);
                goto nroal;
            }else{

        al[i]=nota;}

    }
}

int ausentes(float al, int x){
    int i, contador=0;

    for(i=1;i<=x;i++){
        printf("Alumno %d: %.2f\n", i, al[i]);
    }

    for(i=1;i<=x;i++){
        if(al[i]<1){
            contador+=1;
        }
    }
    printf("%d", contador);
    return contador;
    }
67  Programación / Programación C/C++ / [C] Pasar array como parametro a un "procedimiento" (void) en: 11 Junio 2016, 23:15 pm
Buenas tardes, mi duda es la siguiente. Como puedo pasar como parametro un array unidimensional o bidimensional a un "procedimiento" (void). Aclaro que es un void porque se que no existen los procedimientos en C, pero en donde estudio, las funciones de tipo void las llamamos procedimientos.

Marco donde me marca error el compilador con comentarios:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. /*Cuatro EJERCICIOS - Pide valores para un vector de 5 posiciones y..
  5. 1- Los muestro
  6. 2- Los muestro invertidos
  7. 3- Muestro la suma
  8. 4- Muestro el promedio*/
  9.  
  10. int suma(int numeros[], int tamano);
  11. int promedio(int numeros[], int tamano);
  12. void muestra(int numeros[], int tamano);
  13. void muestrainversa(int numeros[], int tamano);
  14.  
  15. int main()
  16. {
  17.    int numeros[5], i;
  18.    int opc;
  19.  
  20.    printf("CARGA DE ARRAY\n");
  21.    for(i=0;i<5;i++){
  22.        printf("\nIngrese un numero ");
  23.        scanf("%d", &numeros[i]);
  24.    }
  25.  
  26.    printf("\n1- Suma\n2- Promedio\n3- Muestra\n4- Muestra Inversa\n");
  27.    scanf("%d", &opc);
  28.  
  29.    switch(opc){
  30.    case 1:
  31.        printf("\nLa suma es: %d", suma(numeros,5));
  32.        break;
  33.    case 2:
  34.        printf("\nEl promedio es: %d", promedio(numeros,5));
  35.        break;
  36.    case 3:
  37.        muestra(numeros,5); //ERROR
  38.        break;
  39.    case 4:
  40.        muestrainversa(numeros,5); //ERROR
  41.        break;
  42.    }
  43.    return 0;
  44. }
  45.  
  46. int suma(int numeros[], int tamano){
  47.    int sumatoria=0, j;
  48.  
  49.    for(j=0;j<5;j++){
  50.        sumatoria+=numeros[j];
  51.    }
  52.  
  53.    return(sumatoria);}
  54.  
  55. int promedio(int numeros[], int tamano){
  56.    int sumatoria=0,j;
  57.  
  58.    for(j=0;j<5;j++){
  59.        sumatoria+=numeros[j];
  60.    }
  61.  
  62.    return(sumatoria/5);}
68  Programación / Programación C/C++ / [C] Ayuda Pirame-Arbol con * en: 2 Junio 2016, 23:26 pm
Buenas tardes, hoy les pido ayuda con un programa que no logro entender la logica.
No pido que solo me muestren el codigo bien hecho, porque lo busque en internet y no puedo entender la logica de los for, sino que también me ayuden a entenderlo con comentarios en el programa.

Les paso mi programa:


Código:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j=0,g=0;
    for(i=0;i<=8;i++)
    {
        for (j=8;j>=i;j--)
        {
            printf(" ");
        }
        for (g=1;g<=(2*i)-1;g++)
        {
            printf("*");
        }
        printf("\n");
    }
    return 0;
}

Este programa imprime medio arbol de navidad, lo que busco es que imprima uno completo en el centro de la consola.
¿Alguno me ayuda?

Mi objetivo principal es lograr entender como con un for puedo poner un * en medio de la consola. Si se puede hacer sin un printf(" "); (vacio) mucho mejor.

Y no busco utilizacion de funciones o procedimientos, solo en el cuerpo principal.

Muchas gracias!


Aca logre separarlo de la pared de la consola, pero con un printf vacio. Lo que no logro hacer es completarlo del otro lado, me queda medio arbol.

Código:
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int i=0,j=0, x=0;

    for(i=1;i<18;i++){
        for(x=18;x>=i;x--){
            printf(" ");
        }
        for(j=1;j<i;j++){
            printf("*");
        }
        printf("\n");
    }

    return 0;
}
69  Programación / Programación C/C++ / [C] Duda sencilla - sentencia Switch en: 30 Mayo 2016, 23:35 pm
Buenas tardes, verán estoy haciendo un tp en pseudo código y no estoy en mi casa para corroborar la siguiente duda.

En C, se puede poner en un mismo `case` de la sentencia switch un or?

Ejemplo:

switch (caracter)
   case `a` || `b`:
              ....
              ....

70  Sistemas Operativos / Windows / Faltan uno o varios protocolos [WINDOWS10] en: 23 Mayo 2016, 01:52 am
El problema es el siguiente, utilizo mi wi fi a lo mas bien, y al rato (tiempo indefinido, 1, 2 horas), el wifi se cae y al ejecutar el solucionador de problemas de windows me dice "faltan uno o varios protocolos", adjunto imagen.


No se soluciona el problema con el solucionador, y ya intente varias formas de solucionar que encontre en google pero ninguna funciona.

Lo que sucede es que a los 20 minutos se soluciona solo, pero es molesto.
Páginas: 1 2 3 4 5 6 [7] 8
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines