C/Visual C - ayudaaaaaaaaaa

 
Vista:

ayudaaaaaaaaaa

Publicado por Emir (5 intervenciones) el 21/05/2004 02:03:30
Escribir un programa en C llamado "piramide" que reciba por la línea de comando un numero y un string. Este programa escribirá en un archivo cuyo nombre esta definido por el string que recibió como parámetro una pirámide de la forma:

1
2 1
3 2 1
4 3 2 1
5 4 3 2 1
n n-1 n-2 ... 1

donde n es el número que se recibió. Por ejemplo:

c:\piramide 3 salida.txt
Nose por donde empesar ..... ayudenme porfa..... lo necesito
Este programa generará el archivo "salida.txt" cuyo contenido será:

1
2 1
3 2 1
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Revisa si puedes hacer esto primero

Publicado por s (4 intervenciones) el 21/05/2004 02:28:22
Hola.

Mira, lo que quieres hacer es relativamente sencillo, en unas decenas de lineas de código lo haces. Pero como mi objetivo no es hacertelo, sino que aprendas, te pongo una lista de lo que necesitas saber para hacer el programa. Cuando ya te sabes esos temas lo demás es sencillo. Si te atoras en un tema, ahora puedes escribir en el foro preguntando por cosas muy concretas.

Lo que necesitas saber para tu programa es:
1) Leer argumentos de la línea de comandos
2)Convertir cadenas a enteros
3)Hacer ciclos con la instrucción For
4)Escribir archivos de texto

Sabiendo lo anterior, el programa que necesitas no tiene más gracia que realizar un ciclo For en el que una variable se decrementa en vez de incrementarse. En cada iteración del ciclo For, vas guardando los resultados en un archivo y listo.

Cualquier duda, aqui hay gente en el foro dispuesta a orientarte

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Revisa si puedes hacer esto primero

Publicado por emir (5 intervenciones) el 21/05/2004 02:51:51
**ok.... eso esta muy bien pero lo que nose es como leer un argumento de la linea de comando .... si con eso te refieres a que el numero lo tengo que dar directamente dede DOS

"c:\ piramide 3 salida.txt"

donde piramide es mi punto exe
3 el numero dado por mi
y salida.txt el nombre del archibo txt donde se va a guaradr los resultados del sistema

**otra pregunta el archivo de texto se escribe con

doswrite

luego de abrirlo con dosopen?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Sobre argumentos y archivos

Publicado por s (3 intervenciones) el 23/05/2004 00:00:49
Hola.

Leer los argumentos de la linea de comandos es muy sencillo.
Cuando tu declaras tu main() se puede hacer de varias formas, por ejemplo:
void main()
int main()
int main(int argc, char *argv[] )

Con la última forma puedes acceder a la línea de comandos. Argc te indica el número de argumentos u opciones que tienes en la línea de comandos y argv es un arreglo de apuntadores a cadenas que tienen los argumentos.
Si tu invocas tu programa desde DOS de la siguiente forma
c:> c:\ piramide 3 salida.txt
estas generando tres argumentos de la línea de comandos. (lo puedes comprobar con un printf("Numero de argumentos:%d", argc); ) y tus argumentos los puedes acceder de la siguiente forma:
char* nombrePrograma = argv[0];
char* cadenaAUnNumero = argv[1];
char* nombreArchivoParaGuardar = argv[2];

incluso prueba este pedazo de código:
for(int i=0; i< argc; i++)
{
printf("Argumento u opcion %d es:%s\n",i, argv[i] );
}

Fijate que el numero lo recibes como una cadena, por lo que lo necesitas convertir a un tipo entero.

Respecto a los archivos, mis preferencias para manejarlos son con fwrite(), fread() y fprintf(). Te recomiendo usar el fprintf(). Es muy sencillo, si sabes usar un printf(), de hecho, la única variación es que al principio de la función le pasas como argumento un apuntador a un archivo donde se guardaran los datos.

Busca en la documentación del lenguaje C las siguientes funciones:
fopen() // para abrir o crear apuntadores a archivos
fprintf() // para escribir a un archivo
atoi() // para convertir una cadena a un entero

Cualquier duda, a mí o a los demás, con poner tu duda específica, te la responden.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por emir (5 intervenciones) el 23/05/2004 17:14:37
Muchas gracias por su ayuda conclui satisfactoriamente este pequeño programita
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar