[Curso] Introducción a la programación en C (V)
Moderadores: Kravenbcn, largeroliker, fidelcastro, cerealkiller, pspCaracas, m0skit0, LnD, ka69, zacky06
Re: [Curso] Introducción a la programación en C (V)
Está perfecto. Nunca hay demasiado comentarios
Por cierto, system("read foo") no te funcionará en Windows, por tanto no sólo con cambiar las cabeceras funcionaría. Además en Linux te sobra esa línea, y así de paso quitas también unistd.h, con lo que ya funcionaría en cualquier sistema que soporte C estándar.
Esto es un poco avanzado, pero si te interesa crear código que compile para varias plataformas, mírate #ifdef y directivas similares, que permiten incluír o no trozos de código dependiendo de variables de pre-procesado.
Por cierto, system("read foo") no te funcionará en Windows, por tanto no sólo con cambiar las cabeceras funcionaría. Además en Linux te sobra esa línea, y así de paso quitas también unistd.h, con lo que ya funcionaría en cualquier sistema que soporte C estándar.
Esto es un poco avanzado, pero si te interesa crear código que compile para varias plataformas, mírate #ifdef y directivas similares, que permiten incluír o no trozos de código dependiendo de variables de pre-procesado.
- amras5584
- Experto
- Mensajes: 628
- Registrado: 04 Oct 2009, 15:56
- Ubicación: Casal, Paraíso Tropical!!!!
Re: [Curso] Introducción a la programación en C (V)
ok, versión final entonces:
y qué hace exactamente "read foo"?? no es lo de esperar por la tecla Enter?? cómo se pondría en Windows??
Spoiler:
y qué hace exactamente "read foo"?? no es lo de esperar por la tecla Enter?? cómo se pondría en Windows??
Usuario nº 13 del antiguo foro de Dark_AleX (alabado sea)
Ahora que se han desvelado las Keys de Sony, la Scene ha SUPERDIGIEVOLUCIONADO!!
Ahora que se han desvelado las Keys de Sony, la Scene ha SUPERDIGIEVOLUCIONADO!!
Re: [Curso] Introducción a la programación en C (V)
amras5584 escribió:y qué hace exactamente "read foo"?? no es lo de esperar por la tecla Enter??
Nop, lee la entrada estándar al fichero foo. En Windows es "pause". Lo mejor es no usar system().
PD: system() se usa para ejecutar comandos como si fuera la consola.
Saludos.
Re: [Curso] Introducción a la programación en C (V)
m0skit0 escribió:Está perfecto. Nunca hay demasiado comentarios.
En mi sincera opinión demasiados comentarios solo alargan el código(empeorando la legibilidad) por eso lo mejor es poner nombre significativos a las variables y funciones (aunque claro apenas estamos empezando ).
@amaras5584: Disculpa lo que dije del idioma es que no soy de por allá y no lo conocía ...
Re: [Curso] Introducción a la programación en C (V)
JeFNDZ escribió:En mi sincera opinión demasiados comentarios solo alargan el código(empeorando la legibilidad)
Los comentarios NO empeoran la legibilidad puesto que precisamente la mejoran. De todas formas cada uno pone los comentarios que le dé la gana. Y obviamente apechuga con ello cuando no entienda ni lo que él mismo escribió (cuando te pase, me lo comentas ).
- amras5584
- Experto
- Mensajes: 628
- Registrado: 04 Oct 2009, 15:56
- Ubicación: Casal, Paraíso Tropical!!!!
Re: [Curso] Introducción a la programación en C (V)
jejeje, muy buenas las viñetas. precisamente yo empecé a usar los comentarios porque cuando fui a repasar unos xml con código php no entendía una mierda de para qué servía cada cosa. ahora al leer los comentarios ya lo tengo todo claro, xD.
Usuario nº 13 del antiguo foro de Dark_AleX (alabado sea)
Ahora que se han desvelado las Keys de Sony, la Scene ha SUPERDIGIEVOLUCIONADO!!
Ahora que se han desvelado las Keys de Sony, la Scene ha SUPERDIGIEVOLUCIONADO!!
-
- Novato
- Mensajes: 13
- Registrado: 09 Sep 2011, 03:24
Re: [Curso] Introducción a la programación en C (V)
Saludos, aqui mi practica espero todo este bien
Espero los comentarios para poder seguir gracias... bueno continuare con el curso.
Código: Seleccionar todo
//incluyendo las librerias a usar
#include <stdio.h>
#include <windows.h> // es para windows
/*
#include <unistd.h> // esto es para linux
*/
//funcion principal
int main(int argc, char *argv[])
{
//declarando las variables para las edades
int edad1,edad2;
//declarando variables para las operaciones
int suma,resta,multiplicacion;
float media;
//asignando valores a las edades desde el teclado
//mensaje para capturar la edad 1
printf("Ingrese La Edad 1: ");
//capturando la edad 1
scanf("%d",&edad1);
//mensaje para capturar la edad 2
printf("Ingrese La Edad 2: ");
//capturando la edad 2
scanf("%d",&edad2);
//limpiando ventana
system("cls");//limpiar consola en windows
//hallando la suma de las edades
suma=edad1 + edad2;
//hallando la resta de las edades
resta=edad1 - edad2;
//hallando la multiplicacion de las edades
multiplicacion=edad1 * edad2;
//hallando la media de las edades
media=(edad1 + edad2)/2.0;
//mostrado lo pedido
printf("Mostrando Informacion pedida...\n\n");
printf("Suma de las edades...%d \n",suma);
fflush(0);
sleep(2000);
printf("Resta de las edades...%d \n",resta);
fflush(0);
sleep(2000);
printf("multiplicacion de las edades...%d \n",multiplicacion);
fflush(0);
sleep(2000);
printf("Media de las edades...%.2f \n",media);
fflush(0);
sleep(2000);
system("pause");//sin esta linea para linux
return 0;
}
Espero los comentarios para poder seguir gracias... bueno continuare con el curso.
Re: [Curso] Introducción a la programación en C (V)
Te dejo esta lista de consideraciones relacionadas con el uso de fflush, en inglés, pero creeme que merecen ser vistas con detalle, ya que mucha gente no sabe como usar correctamente la función. Es un recopilatorio que he hecho para la ocasión, y creo que casi se merece un post a parte explicándolo; como soy perezoso te dejo a ti descubrir los motivos por los que tu programa no es correcto. Y si te animas pos te dejo escribir ese tutorial .
Interesante, verdad? Y digo que es importante porque en miles de sitios sigue recomendándose utilizar fflush() erróneamente.
Espero que te sea de ayuda.
- For output streams, fflush() forces a write of all user-space buffered data for the given output or update stream via the stream's underlying write function. For input streams, fflush() discards any buffered data that has been fetched from the underlying file, but has not been by the application.
- The open status of the stream is unaffected.
- For input streams, the behaviour is undefined.
- In files open for update (i.e., open for both reading and writting), the stream shall be flushed after an output operation before performing an input operation. This can be done either by repositioning (fseek, fsetpos, rewind) or by calling explicitly fflush.
- If the stream argument is NULL, fflush() flushes all open output streams.
- A "fflush" operation on a disk file involves a fair amount of overhead. Therefore you should not flush disk files explicitly unless the nature of the application makes it necessary (for example, if you need to flush log files to make sure they remain valid in the event of a system crash).
- A "fflush" operation on a terminal also costs significant overhead, unless there is no output waiting to go to the terminal. You should generally avoid explicit flush operations on terminals, since it might make you lose input. For example, you should definitely NOT write code of the form
Código: Seleccionar todo
printf("Prompt: ");
fflush(stdout);
gets(s);
The reason is that input to the terminal is discarded unless there is an outstanding read request from the program. Since the flush operation takes place between the "printf" and the "gets", any input received after the prompt but before the "gets" is simply discarded. It is much safer to writeCódigo: Seleccionar todo
printf("Prompt: ");
gets(s);
and let the implicit output-flushing routines handle everything for you. - A call to "sleep" automatically flushes buffered output to all terminals. Contrast this with
Código: Seleccionar todo
fflush(NULL);
which flushes buffered output to all output streams, whether or not they're terminals.
Interesante, verdad? Y digo que es importante porque en miles de sitios sigue recomendándose utilizar fflush() erróneamente.
Espero que te sea de ayuda.
... after all, we're all alike.
Re: [Curso] Introducción a la programación en C (V)
Aparte de lo correctamente apuntado por Yn$an€, me gustaría que formatearas tu código para que simplemente pueda leerlo