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ú

Temas - n-utz

#46
Windows / Recuperar defragmentador W7
11 Noviembre 2016, 02:34 AM
Gente, cómo están. Preciso ayuda, tuve un error muy... juzguen ustedes.
Elimine el acceso directo del defragmentador de la carpeta Herramientas del Sistema y no se como recuperarlo.

Agarre el dfgr.exe o no me acuerdo bien el nombre, creando un acceso directo, pero lo ejecuto se me abre 2 segundos el cmd y se cierra y no hace nada.

Alguno sabe como recuperarlo? Muchas gracias.
#47
Bueno, como dice el titulo del post, busco algun libro/paper de C orientado a lo que se puede llamar "objetos" en dicho lenguaje.

Lo que busco es ampliar mis conocimientos en C, ya que se todo lo básico, ya quiero ir mentiendome en sockets y demás. Si saben el nombre de algún libro que me pueda servir o links dónde conseguir este, papers demás, me ayudan mucho.

Gracias.
#48
GNU/Linux / Montar /dev/sda2 en Ubuntu
22 Octubre 2016, 19:47 PM
Buenas, resulta que en mi mac se le jodio el arranque y no puedo acceder a Yosemite OS.

Se me ocurrio bootear desde Ubuntu y montar el disco donde tengo mis archivos para copiar unos que no quiero perder antes de formatear completamente la notebook.

Cabe destacar que mis conocimientos en Linux son muy limitados, y necesito hacer esto urgente.

Ejecute el fdisk -l, a lo que el resultado fue:
Disk dev/ram (desde 0 a 15, todas de 64 MB)
Disk dev/loop0

Disk /dev/sda: 232.9 GB, .........
Disklabel type: gpt
...

/dev/sda1 200M      EFI System
/dev/sda2 232.1G   Apple HFS\HFS+
/dev/sda3 619.9     Apple boot


Lo que me interesaría montar sería el sda2, pero cuando aplico:

sudo mount /dev/sda2 - sudo mount /dev/sda

Con cualquieras de las dos opciones me muestra:
mount: can't fubd /dev/sda in /etc/fstab.


Como podría levantar dicho disco?
#49
Buenas gente, miren hice un algoritmo que carga unos datos de un alumno en un archivo maestro, y ademas carga la posicion de donde se encuentran dichos datos en el archivo maestro en un archivo llamado indice. El problema surge ahí, por consecuencias trabajo con cuatro archivos.
2 maestros
2 indices.

El problema surge en el 2do maestro con el 2do indice, al cargarle el primer alumno el indice deberia quedar cargado, en el campo de posicion, con el valor 0, pero queda cargado con 3, 4 y al usar fseek para imprimir los datos del archivo maestro imprime basura. Les dejo el algoritmo a ver si me pueden dar una mano.

FILE* regulares;
    FILE* inregulares;
    regulares=fopen("alumnos_regulares.bin","a");
    inregulares=fopen("indice_regulares.txt","at");
    fread(&a,sizeof(alumnos),1,fichero);
    while(!feof(fichero)){
        if(a.estado==1){
            ar.dni=a.dni;
            strcpy(ar.nombre,a.nombre);
            ar.born=a.born;
            ar.sexo=a.sexo;
            ar.address=a.address;
            ar.college=a.college;
            fwrite(&ar,sizeof(aregulares),1,regulares);
            i.posicion=0;
            i.posicion=ftell(regulares)-sizeof(aregulares);
            fwrite(&i,sizeof(indice),1,inregulares);
        }
        fread(&a,sizeof(alumnos),1,fichero);
    }


fichero es un puntero al otro archivo maestro.

Lo que estoy haciendo en este programa es purgar los alumnos ingresantes que cumplen las condiciones para pasar a ser regulares, y habilitarlos en el nuevo archivo.
#50
Buenas gente, necesito ayuda inmediata, tengo 4 horas para solucionar este problema.

Mi mac comenzo a fallar en el arranque, inicie la ultilidad de discos verifique los discos y está todo bien. Pero sigue sin iniciar, quise reinstalar el SO desde ese mismo menú, pero no me da la opción de reinstalarlo en el disco que tengo, no me aparece ningún disco para reinstalarlo.

El problema es que baje unos archivos muy importantes para hoy a la noche y los necesito, por lo tanto no quiero perder ningún dato, estoy desesperado.

Me dan una mano?
#51
Programación C/C++ / [C] Manejo de cadenas
18 Octubre 2016, 23:21 PM
Tengo una simple duda, suponganse que tengo la variable:

char palabra[20];

Como hago para asignarle una cadena manualmente, y con espacios?

Leí que esta era una opción:

palabra[20]={'H',' ','o'}

Pero me tira error, es algo sencillo, para realizar bajas logicas y cargar una cadena a mano. Ayuda?
#52
Buenas, vengo con dos errores, se trata de un programa de archivos secuenciales. En este caso los errores lo tengo en la parte de altas de "alumnos", donde tengo que ingresar sus datos a través de un registro y almacenarlos en un archivo.

Primer problema, sucede cuando doy opciones de las ramas de secundarios del alumno ingresante, le doy 3 opciones al usuario con un sub-menu sencillo que entra a un switch con un entero. El problema surge cuando se elige la rama Cs Sociales (opcion 2), ya qué no solo se guarda en el campo rama "Cs Sociales" sino que además le agrega al final el nombre del establecimiento que cómo verán lo pido abajo, les dejo el código y la salida.

printf("Informacion acerca del titulo secundario");
    fflush(stdin);
    printf("\nIngrese la rama de estudio\n\t1)Tecnico\n\t2)Cs Sociales\n\t3)Comercial\n\t\tOpcion: ");
    scanf("%d",&rama);
    while(rama<1 || rama>3){
        printf("Opcion incorrecta, vuelva a ingresar el numero segun el menu\n");
        printf("\t1)Tecnico\n\t2)Cs Sociales\n\n3)Comercial\n\t\tOpcion: ");
        scanf("%d", &rama);
    }
    switch(rama){
        case 1: strcpy(a.college.rama,"Tecnico"); break;
        case 2: strcpy(a.college.rama,"CsSociales"); break;
        case 3: strcpy(a.college.rama,"Comercial"); break;}
    printf("\nIngrese el establecimiento donde se obtuvo: ");
    fflush(stdin);
    scanf("%[^\n]",&a.college.establecimiento);


Salida:

Rama: CsSocialesSan Andres

Siendo San Andres el nombre del establecimiento ingresado. Esto solo sucede con la opción dos.

Y el segundo error es algo pavo, pero no sé dónde está el error de sintaxis, sucede que al pedir que ingrese el sexo en modo de caracter por "M" o "F", armé una comprobación de que si entran alguna otra letra, devuelve un error. Pero no solo imprime el mensaje de error una sola vez, sino que lo imprime dos veces seguidas y no sé por qué, les dejo la parte del código y su salida.

printf("\nIngrese el sexo del alumno (M-F): ");
    fflush(stdin);
    scanf("%c",&a.sexo);
    while(a.sexo!='m'&&a.sexo!='M'&&a.sexo!='f'&&a.sexo!='F'){
        printf("\nError, vuelva a ingresar (M\\N): ");
        scanf("%c",&a.sexo);
    } if(a.sexo=='m')a.sexo='M'; if(a.sexo=='f')a.sexo='F';


Salida:

Ingrese el sexo del alumno (M-F): s

Error, vuelva a ingresar (M/F):
Error, vuelva a ingresar (M/F):


Gracias.
#53
Buenas, estoy desesperado, ayer apague mi pc de lo mas bien, luego de varios intentos por configurar el GRUB para que me aparezca Windows y Ubuntu, hoy al prenderla me aparece el GRUB pero con la opción de ubuntu sola, que al presionarla no entra y me tira un error.

Me quede sin poder entrar ni a Ubuntu, ni a Windows desde mi PC y no se como solucionarlo!!

El error que me salta es desde el Admin. de arranque de Windows, y luego me dice que no se pudo iniciar Windows, que es posible que haya habido un cambio de hardware o de software, como puedo lograr corregir este problema??
#54
Windows / Recuperar GRUB desde Windows, ayuda!
1 Octubre 2016, 05:37 AM
Buenas muchachos, después de dar muchas vueltas y buscar en diferentes foros, recurro a ustedes sin haber encontrado una solución.

Soy muy nuevo con linux, y con todo lo que tenga que ver con la BIOS, me voy adentrando de a poco. Pasaré a explicar mi problema.

Tengo Windows 10 instalado, quise instalar un Linux, logré hacerlo, pero cuando inicio me inicia directamente a Windows, y yo quiero que me aparezca la elección para poder bootear cualquiera de los dos Sistemas Operativos. Es raro que se me haya "ido", en realidad no se ni donde buscarlo, el GRUB, si lo último que instalé fue Linux, cuando generalmente sucede cuando instalar por último el Windows.

Bueno, aquí acudo a ustedes, ¿cómo recupero el grub y lo configuro correctamente para que me de la opción de bootear Ubuntu 16.04 o Windows 10?.

Posteo en este foro y no en Linux ya que pretendo una solución para hacerlo desde Windows, nunca he tocado Linux.

Ayuda por favor, gracias!
#55
GNU/Linux / [AYUDA XFA] Recuperar GRUB2, dualboot W10
29 Septiembre 2016, 17:45 PM
Buenas, una vez más editando este post, espero que sea definitivo.

No logré que nadie me solucione mis problemas, estoy rendido en Linux antes de empezar, a ver si reviven mis ganas por el open source...

En resumen: Tengo W10, instalé Ubuntu 16.04, pero ahora solo me deja bootear W10, ya que no me salta el GRUB2 para seleccionar entre sistemas operativos.

Busqué un montón de soluciones y ninguna pude llevar a cabo, por eso recudo a ustedes, soy virgen de Linux, y espero que me ayuden.

Necesito saber como bootear Ubuntu, como configurar y habilitar el GRUB2. Si es necesario, reemplazo la versión de Ubuntu por otra distribución de Linux con GRUB2, pero porfavor ayudenme!
#56
Programación C/C++ / [Ayuda C]Consejos para TP Final
27 Septiembre 2016, 03:40 AM
[PRIMERA DUDA RESUELTA POR MAFUS]
Buenas, estoy ya preparando mi TP final para aprobar la asignatura, vengo en busca de unos consejos y sacarme varias dudas. El TP es con manejo de archivos y estructura, nada complicado.
Lo que pasa que quiero hacerlo lo mas optimo posible y por eso acudo a ustedes.

Mi primera duda es que en el programa tengo que leer bocha de datos ingresados por teclado, y siempre en todos mis programas tengo problemas, al combinar gets y scanf, con el buffer. Que funciones me recomiendan usar para lecturas de datos?

Recuerden que tengo windows y no se si es conveniente poner un fflush(stdin) cada dos lineas.

Tengo que leer cadenas y numericos, no mas.

(Ire cambiando el post y editandolo entre tilde y cruz cada vez que tengo una pregunta, para evitar doble, triple, cuadruple post) Gracias a los interesados!

Ademas les pido a los que tengan, algun paper con apuntes de C especificamente de archivos, ya que los que tengo dejan algo que desear.



[SEGUNDA DUDA]

Modifico este post para no plaguear el sub-foro.
Ahora tengo una duda con el archivo, al grabarlo lo grabo con extension .txt, y graba todo perfectamente, y si lo leo desde el IDE lo imprime perfectamente. El problema esta cuando yo voy directamente al txt creado y lo abrio, se ven todos simbolos ilegibles, como si fuera basura, y me han dicho que no tiene porque ser asi.

Mi duda es como hacer para que se no se grabe "basura" en el txt, y tambien pueda modificarlo desde alli.

Gracias.
#57
Programación C/C++ / [C] Ordenar Array de STRUCT
24 Septiembre 2016, 00:22 AM
Buenas, ahora estoy perdido enserio.

Me pidieron que haga un array de estructuras con los campos NombreyApellido, DNI, Sueldo, FechaFinDeContrato, tengo que cargarlo desordenadamente, luego ordenarlo y pasarlo a un archivo ordenado.

Lo tengo que ordenar por el campo clave DNI, y utilizar alguno de los metodos conocidos, shell, quicksort, burbuja, etc...

No tengo idea como hacerlo, es decir se como comparar los DNIs entre si, pero despues no se como acomodar en orden la estructura o si pasarla directamente a medida que voy encontrando los primeros elementos al archivo.
#58
Programación C/C++ / [C] Duda facil - cadena
20 Septiembre 2016, 23:09 PM
Bien, recien estoy empezando con archivos, y arranque por un programa facilito. Que me grabe frases en un txt mediante la variable texto, hasta que ingreso la palabra "fin", cuando se ingresa fin se cierra el archivo, sin grabar dicha palabra.

Resulta, que por mas que ingrese fin no me lo toma, les paso el fragmento del codigo.

char texto[10];
    FILE* fichero;
    fichero= fopen("registroDeUsuario.txt", "wt");

    while(texto[10] != "fin"){
        fflush(stdout);
        gets(texto);
        fputs(texto,fichero);
        fputs("\n",fichero);
    }
    fclose(fichero);



intente tambien con comillas simples y nada.
#59
Programación C/C++ / [C] Lectura de caracter
13 Septiembre 2016, 01:52 AM
[SOLUCIONADO]: Tenia cargado el buffer de alguna manera, entonces cuando llegaba el scanf, agarraba cualquier caracter, la solucion fue poner, antes del scanf, un getchar() para que se encargue de eso.

Buenas noches, acá una vez más odiando C y el scanf, a ver si me dan una mano.

Hace tiempo postee que tenía problemas con leer caracteres, tenía dos variables de caracteres, que leían solo una vez durante el programa con el scanf, me leía el problema y el segundo lo ignoraba, lo solucioné gracias a un colega de acá que me dijo que implemente el getchar(), para el retorno si no me equivoco.

Ahora, tengo un problema similar, la diferencia es que meto un scanf que lee caracteres dentro de un for, por lo tanto va a tener que leer caracteres diferentes cuantas veces como diga el usuario.

El problema es que no lee ni la primera vez, y no entiendo por qué. Acepto cualquier consejo, si es necesario reemplazar scanf por otra función lo hago, pero intenté con getchar y tampoco puedo, les dejo las líneas del problema..


int main()
{
   char abc[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
   int cc, i, j, num;
   char aux;

//LECTURA DE OTRAS VARIABLES COMO CC, Y DECLARACION DE COD

for(i=0;i<cc;i++){
       printf("Ingrese el %d caracter: ", i);
       scanf("%c", &aux);
       getchar();
       printf("\n%c", aux);
       for(j=0;j<26;j++){
           if(abc[j]==aux)aux=abc[j];
       }
       cod[i]=aux;
   }
#60
Programación C/C++ / [C] La duda eterna
5 Septiembre 2016, 02:13 AM
Buenas noches gente, tengo una duda, estoy con un programa en el cual paso un array bidimensional de caracteres.

La cosa es que al pasarlo como pasaría un array unidimensional, en la función no es reconocido. La pregunta puntual es:

¿Cómo paso un array bidimensional de caracteres definido dentro del main a una función?. Había solucionado este problema poniendolo como variable global, pero quiero hacerla local.

Si es necesario apunto el código.
#61
Programación C/C++ / [C] Duda con bucle
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
Windows / [DUDA] Windows 10
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 C/C++ / [C] Duda TATETI
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
Hardware / Laptop DELL, se queda pegada
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
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
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.

#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
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:

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

/*Cuatro EJERCICIOS - Pide valores para un vector de 5 posiciones y..
1- Los muestro
2- Los muestro invertidos
3- Muestro la suma
4- Muestro el promedio*/

int suma(int numeros[], int tamano);
int promedio(int numeros[], int tamano);
void muestra(int numeros[], int tamano);
void muestrainversa(int numeros[], int tamano);

int main()
{
    int numeros[5], i;
    int opc;

    printf("CARGA DE ARRAY\n");
    for(i=0;i<5;i++){
        printf("\nIngrese un numero ");
        scanf("%d", &numeros[i]);
    }

    printf("\n1- Suma\n2- Promedio\n3- Muestra\n4- Muestra Inversa\n");
    scanf("%d", &opc);

    switch(opc){
    case 1:
        printf("\nLa suma es: %d", suma(numeros,5));
        break;
    case 2:
        printf("\nEl promedio es: %d", promedio(numeros,5));
        break;
    case 3:
        muestra(numeros,5); //ERROR
        break;
    case 4:
        muestrainversa(numeros,5); //ERROR
        break;
    }
    return 0;
}

int suma(int numeros[], int tamano){
    int sumatoria=0, j;

    for(j=0;j<5;j++){
        sumatoria+=numeros[j];
    }

    return(sumatoria);}

int promedio(int numeros[], int tamano){
    int sumatoria=0,j;

    for(j=0;j<5;j++){
        sumatoria+=numeros[j];
    }

    return(sumatoria/5);}
#68
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:


#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.

#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
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
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.
#71
Buenas noches, verán, necesito que me ayuden:

Mi idea es tomar un caracter que lo entra el usuario por teclado y caracter a caracter ir completando una cadena (de maximo de 10 caracteres), y luego mostrar la cadena por pantalla, así formando la palabra completa.

Quería usar la función strcat, pero por lo que vi no funciona agregandole de a un caracter (es decir agregarle con una variable char(no cadena)), sino que solamente funciona con cadenas. Entonces pensé en que la solución estaría en simplemente hacer una cadena con un solo caracter es decir (char c[1];), pero en ese caso debería poder hacer un switch con esa variable, y por lo que tengo entendido el switch no funciona con cadena.

¿Alguna idea?

PD: El switch es necesario por otra parte del programa.
#72
Programación C/C++ / Busco libro de C
19 Mayo 2016, 21:23 PM
Buenas tardes, como verán soy nuevo en el foro, ya anduve viendo algunos temas ya publicados. Ahora mismo estoy cursando sistemas y el primer lenguaje que nos dieron para aprender es C.

No me está resultando díficil pero quisiera una ayuda, y ando buscando un libro de C práctico, no hace falta que sea un tomo de 1000 páginas, mientras más chico mejor, que explique cada y todas las funciones de C, y explique malos hábitos y demás.
También puede servirme algún pdf que alguno tenga y demás.

He visto ya el tema que esta anclado arriba pero leí que los links están caído y además no sabría cuál de todos es más práctico.