-" Si esto le parece japonés adivine que dice acá: あなたのお母さんは私のガールフレンドです =D "

Uno mas fácil que el otro

| domingo, 22 de agosto de 2010
Antes que nada no me quiero olvidar de poner que el highlighting del código lo hago online gracias a "online syntax highlighting for c" una herramienta online muy linda para generar directamente los coloreados en html.-

Ahora si, el ejercicio 2 del primer práctico:


/*
 * Universidad Nacional de San Juan
 * Facultad de Ciencias Exactas Físicas y naturales
 * Programación Procedural año 2010
 * Iván Neira Reg. 13583
 *
 * Práctico 1
 * Ejercicio 3:
 * "Un negocio de automotores procesa las ventas realizadas por sus 15 vendedores. Cada
 * vendedor puede vender 0 o mas autos. Por cada auto vendido se ingresa: marca del auto
 * e importe de venta.
 * Las marcas de autos están codificadas de la siguiente manera:
 * 1:Ford, 2:Fiat, 3:Renault, 4:Chevrolet, 5:Peugeot
 * Realizar un algoritmo en C que permita:
 * a) Ingresar información de las ventas realizadas por los distintos vendedores. Por cada
 * vendedor el ingreso de las ventas termina con una marca igual a cero (0).
 * b) Mostrar la cantidad total de autos de marca Fiat vendidos por cada vendedor.
 * c) Mostrar importe promedio de autos vendidos por cada marca.
 * d) Mostrar porcentaje de autos Peugeot vendidos respecto de la cantidad total de
 * unidades vendidas.
 * e) Indicar si se vendieron mas autos marca Renault que marca Chevrolet."
 */

#include <stdio.h>

#define vendedores 3

int main(int argc, char** argv)
{
int i, marca, autos[5], solo_fiat=0,auxiliar;
float importe[5],precio;

//Inicializacion de arreglos acumuladores

for(i=0;i<5;i++)
{
autos[i]=0;
importe[i]=0;
}

for(i=0;i<vendedores;i++)
{
printf("\nVendedor número %d\n",i+1);

printf("\nIngrese marca de vehículo vendido\n");
scanf("%d",&marca);
fflush(stdin);

while(marca!=0)
{
autos[marca-1]++;
printf("\nIngrese importe\n");
scanf("%f",&precio);

importe[marca-1]+=precio;

if(marca==2) solo_fiat++;

printf("\nIngrese marca de vehículo vendido\n");
scanf("%d",&marca);
fflush(stdin);
}

printf("\nEl vendedor %d vendió %d autos marca Fiat\n",i+1,solo_fiat);
solo_fiat=0;

}

printf("\n**Importe promedio de autos vendidos por cada marca**\n");
printf("\nFord: $%f",importe[0]/autos[0]);
printf("\nFiat: $%f",importe[1]/autos[1]);
printf("\nRenault: $%f",importe[2]/autos[2]);
printf("\nChevrolet: $%f",importe[3]/autos[3]);
printf("\nPeugeot: $%f",importe[4]/autos[4]);

auxiliar=autos[0]+autos[1]+autos[2]+autos[3]+autos[4];

printf("\nEl promedio de autos Peugeot vendidos es de %3.2f %%\n",(float)100*autos[4]/auxiliar);

if(autos[2]>autos[3]) printf("\nSe vendieron mas autos Renault que Chevrolet\n");


}


Primer ejercicio

| sábado, 21 de agosto de 2010
Como ya estoy haciendo un par de ejercicios del primer práctico de programación procedural, procedo a postearlo para que quede en acta:

/*
 * Universidad Nacional de San Juan
 * Facultad de Ciencias Exactas Físicas y naturales
 * Programación Procedural año 2010
 * Iván Neira Reg. 13583
 *
 * Práctico 1
 * Ejercicio 2:
 * "Realizar un programa en C que permita:
 * a) Ingresar por teclado números enteros positivos menores que un número ingresado
 * previamente. El ingreso finaliza cuando se lee un número negativo.
 * b) Mostrar el promedio de números válidos ingresados.
 * c) Mostrar el primer y el último valor ingresado.
 * d) Indicar si el ingreso de los mismos fué ordenado ascendentemente.
 */

#include <stdio.h>

int main(int argc, char** argv)
{
int numero_ingresado, numero_nuevo=0, primer_valor, ultimo_valor, acumulador=0,contador=0, ingreso_anterior=0, bandera=0;

printf("\nIngrese un numero entero\n");
scanf("%d",&numero_ingresado);
fflush(stdin);

printf("\nIngrese un numero entero menor a %d . Termine con numero negativo\n",numero_ingresado);
scanf("%d",&numero_nuevo);
fflush(stdin);

primer_valor=numero_nuevo;

while(numero_nuevo>=0)
{
if(numero_nuevo<ingreso_anterior) bandera=1;

if(numero_nuevo<numero_ingresado)
{
printf("\nEl numero ingresado es valido\n");
acumulador+=numero_nuevo;
contador++;

}
else printf("\n%d es mayor o igual que %d\nEl numero ingresado *NO* es valido y no se promediara\n", numero_nuevo, numero_ingresado);

ingreso_anterior=numero_nuevo;
ultimo_valor=numero_nuevo;

printf("\nIngrese un numero entero menor a %d . Termine con numero negativo\n",numero_ingresado);
scanf("%d",&numero_nuevo);
fflush(stdin);

if(numero_nuevo<=0)
printf("\nFin de ingreso\n");

}


printf("\nPromedio de numeros validos ingresados: %f\n",(float)acumulador/contador);

if(bandera==0) printf("\nEl ingreso fue ordenado ascendentemente\n");
else printf("\nEl ingreso *NO* fue ordenado ascendentemente\n");

printf("\nEl primer valor ingresado fue %d\nEl ultimo valor ingresado fue: %d\n",primer_valor,ultimo_valor);

getchar();

}


Que uso?

| viernes, 20 de agosto de 2010
En la facultad me aconsejaron usar el ordinario y rústico borland C++ versión 5 y algo. Me parece una asquerosidad y además funciona bastante mal en Windows 7 asi que por consejo de mi compañero Fede me baje el Netbeans con el compilador cgwin y me anda de primera.
Y para instalarlo es bastante sencillo y cito literalmente la página a continuación:



Descargar el soporte C/C++


Si usted no tiene NetBeans IDE 6.0, vaya a la Página de Descarga de NetBeans IDE 6.0 y descargue una versión IDE que contenga el soporte para C/C++. Si usted tiene una instalación de NetBeans IDE que no incluye el soporte para C/C++, complete los siguientes pasos para agregar el soporte para C/C++ al IDE.

  1. Si su red usa un proxy, seleccione Tools > Options desde el menú principal, seleccione Manual Proxy Settings, introduzca el HTTP y el Puerto de su proxy, y haga click en el botón OK.
  2. Seleccione Tools > Plugins desde el menú principal.
  3. En el cuadro de diálogo Plugins, haga click en la pestaña Available Plugins, y desplácese hasta la categoría C/C++.
  4. Habilite la casilla de verificación C/C++.
  5. Haga click en Install.

    El Instalador de NetBeans IDE se inicia.
  6. En el Instalador de NetBeans IDE, haga click en Next.
  7. Lea el acuerdo de licencia, luego seleccione I Accept the Terms en el botón de selección All License Agreements, y haga click en Next.
  8. Haga click en Install.
  9. Despús de completarse la instalación, seleccione Restart IDE Now o Restart IDE Later y haga click en Finish.

Instalar y Configurar los Compiladores y las Herramientas

El paquete C/C++ de NetBeans requiere un compilador C, un compilador C++, una utilidad make, y un depurador gdb.

Windows

El paquete C/C++ de NetBeans ha sido probado con los siguientes compiladores y herramientas:

  • Cygwin 1.5.21
  • Cygwin gcc-core (compilador C) 3.4.x
  • Cygwin gcc-c++ (compilador C++) 3.4.x
  • Cygwin gdb (Depurador GNU) 6.5.50
  • Cygwin make 3.80

Si usted ya tiene los compiladores GNU Cygwin, GNU make, y el depurador gdb instalados en su sistema Windows y el path está configurado correctamente, asegurese de tener las versiones correctas. Si usted tiene las versiones correctas, entonces no hacen falta configuraciones futuras.

Para verificar las versiones de sus compiladores Cygwin y de sus herramientas:

  1. Verifique la versión de Cygwin escribiendo:

    cygcheck -c cygwin           
  2. Verifique las versiones de los compiladores, make, y gdb escribiendo:
    gcc --version g++ --version make --version gdb --version           

Para instalar los compiladores GNU, make, y el depurador gdb desde cygwin.com:

  1. Descargue el programa Cygwin setup.exe haciendo click en el ícono Install o Update Now! en el centro de la página.
  2. Ejecute el programa setup.exe. Acepte las opciones por defecto hasta llegar a la página Select Your Internet Connection. Seleccione las opciones en esta página que se ajustan mas a sus necesidades. haga click en Next.
  3. En la página Choose Download Site, seleccione una dirección que usted crea que esté relativamente cerca a usted. Haga click en Next.
  4. En la página Select Packages seleccione los paquetes (packages) para descargar. Haga click en el signo + próximo a Devel para expandir las categorías de las herramientas de desarrollo. Quizá usted quiera reajustar el tamaño de la ventana para ver mas categorías al mismo tiempo.
  5. Seleccione cada paquete que desea descargar haciendo click en la etiqueta Skip al lado de cada paquete. Como mínimo, seleccione gcc-core: el compilador C, gcc-g++: el compilador C++, gdb: el depurador GNU, y make: la versión GNU de la utilidad 'make'.
  6. Ahora agregue el directorio del Compilador a su path:

    1. Abra el Panel de Control (Inicio > Configuración > Panel de Control) y haga doble click sobre el ícono Sistema.
    2. Seleccione la pestaña Avanzado y haga click en Variables de Entorno.
    3. En el panel de las Variables de Sistema del cuadro de diálogo Variables de Entorno, seleccione la variable Path y haga click en Editar.
    4. Agregue el directorio directorio-cygwin\bin a la variable Path, y haga click en OK. Por defecto, directorio-cygwin es C:\cygwin. Los nombres de los directorios deben estar separados con punto y coma.
    5. Haga click en OK en el cuadro de diálogo Variables de Entorno y en el cuadro de diálogo Propiedades del Sistema.

y nada mas, saludos!

Hola Mundo

|
Qué tal? Mi nombre es Iván y pienso escribir en este blog lo que mas me interese academicamente. Estudio primer año de Licenciatura en Ciencias de la Computación.
El primer semestre fue bastante aburrido con pseudocódigo pero ahora que estamos mas de lleno en C me parece interesante postear mis ejercicios para tenerlos a mano y que de paso reciba alguna crítica constructiva (o no) de algún compañero o colega (o no).
Si Linus Torvalds hizo una ganzada parecida y ahora esta podrido en plata... digo, hizo un sistema operativo excelente =).

licencia

Licencia de Creative Commons
Ejercicios de programación by Iván Neira (ae) is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at paraserlicenciado.blogspot.com.