Argumentos y Estructuras de control en C – Linux

| 2013-08-17 | No hay comentarios »

El lenguaje C tiene varias estructuras de control para bucles y bifurcaciones condicionales.

Argumentos en C pasados por el sistema operativo:


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

main(int argc, char **argv[])
{
//El %d significa que es un número.
//El argc indica el número de argumentos pasados desde el sistema operativo, se le resta uno porque el primer argumento es el nombre del programa
printf("Número de argumentos pasados %d\n", argc-1);
//El %s significa que es un string, el argv[1] representa el primer argumento pasado al programa desde el sistema operativo
printf("Argumento 1: %s\n", argv[1]);
//De por si los argumentos pasados son string, si queremos mostrar un argumento que sea número, primero debemos convertirlo
//El atoi convierte una cadena a número entero, se puede utilizar otras funciones como atof.
printf("Argumento 2: %d\n", atoi(argv[2]));
}

En este caso, si usas la consola linux tenés que compilar el programa:

gcc -o nombre nombre.c 

y luego ejecutarlo:

 ./nombre holamundo 2

El paso de compilación y ejecución es el mismo para los siguientes ejemplos.

Ingreso de datos a través del programa en ejecución:


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

//Función principal
main (int argc, char **argv[])
{
//EL * representa un puntero, los punteros son variables enteras que almacenan un numero que es una direccion de memoria.
//En C, al contrario que en otros lenguajes de programacion, se puede obtener directamente la direccion de memoria de cualquier variable. Esto es posible hacerlo con el operador unario "&"

//Declaramos nombre como char
char *nombre;
//Declaramos edad como tipo entero
int edad;

//Mostrar texto para ingresar nombre
printf("Ingrese nombre: ");
//Capturar lo que el usuario escribe, el %s significa string, lo que se ingrese se guarda en nombre
scanf("%s", &nombre);
//Mostrar texto para ingresar edad
printf("Ingrese edad: ");
//Capturar lo que el usuario escribe, el %d significa que se ingresará un número, lo que se ingrese se guarda en edad
scanf("%d", &edad);
//Mostramos los datos ingresados.
//El símbolo & se utiliza siempre en varibles usadas con punteros, como pueden ser char, arreglos,etc para poder acceder directamente a su contenido y no a su dirección de memoria.
printf("\n Nombre %s Edad: %d",&nombre, edad);

}

Ejemplo de If, While y Switch:

//Llamada a librerías
#include<stdio.h>
#include<stdlib.h>

//Función principal
main(int argc, char **argv[])
{

//Declaramos variables
int nro1;
int nro2;

//Ingresamos dos números, rango inicial y final
printf("Ingrese numero 1: ");
scanf("%d", &nro1);
printf("Ingrese numero 2: ");
scanf("%d", &nro2);

//Preguntamos si el número 1 es menor al número 2
if(nro1<nro2)
{
 //Bucle While, que va desde el inicio hasta el fin, y lo muestra en pantalla
 while (nro1<=nro2)
 {
 printf("Numero: %d",nro1);
 nro1++;
 }
}
//Si el número 1 es mayor entonces mostramos en pantalla dicho mensaje
else
{
printf("EL NUMERO 2 DEBE SER MAYOR AL PRIMERO");
}

//Utilizaremos la variable nro1 para el ejemplo
 switch(nro1)
 {
 case 0: // Si es 0 entonces mostrar
 printf("La variable es 0");
 break;

 default: // Cuando es distinto de cero
 printf("La variable es distinto de 0");
 break;
 }

}

Ejemplo de For y vectores:


//Ingresar 10 números en un programa en ejecución y buscar el mayor de los números.
//Llamada a librerías
#include<stdio.h>
#include<stdlib.h>

//Función principal
main(int argc, char **argv[])
{

//Declaramos variables
//En este caso valores tendrá 10 valores posibles, del 0 al 9
int valores[10];
int i;
 //Bucle for, que va desde el 0 hasta el 9
 for (i=0; i < 10; i++) {
 printf("Ingrese numero %d: ",(i+1));
 scanf("%d", &valores[i]);
 }

 //Buscamos el mayor de los 10 números ingresados.
 int aux=valores[0];
 for (i=1; i < 10; i++) {
 if(valores[i]>aux)
 aux=valores[i];
 }

 //Mostramos el mayor número ingresado
 printf("\nEl mayor es: %d",aux);

}

Acerca del autor: Rodrigo Paszniuk

Ingeniero Informático, amante de la tecnología, la música, el ciclismo y aprender cosas nuevas.

Posts Relacionados

  • Developers SO Sistemas Operativos preferidos por los developers
  • Instalar Tomcat 7 en CentOS 6
  • RPC (Remote Procedure Call) en C – Linux
  • Sockets en C (Parte II) – Linux



SEGUÍNOS EN FACEBOOK


GITHUB