dimarts, 18 de maig del 2010

Problema 1 en C++

Recuperem el problema exemple plantejat alguns posts enrere:

El teu grup d'amics de tota la vida és de sis persones, però, de moment, només una ha tingut fills. Quin percentatge del grup encara no té fills?

Jo el que faria seria una regla de tres: si 6 és el 100%, les 5 persones que no han tingut fills (6-1=5) quin percentatge representen.?

Solució=(5x100)/6= 83.3% seria el resultat.

Ja tenim la part A resolta. Hem pensat com arribar a la solució. Ara ens falta transportar això al llenguatge de programació concret amb el que estem treballant: C++.

Primer de tot necessitem definir variables i constants. I què és això? Doncs bé son com una mena de calaixos de memòria que ens permetran emmagatzemar dades de diferent tipus.

Constants

>>Les constants estan pensades per dades que es repeteixen al llarg del codi sense variació. Imagina que fem un programa per un país a on la majoria d'edat és als 18, i aquesta dada es va repetint per tot el codi, si la tenim definida com a constant i després hem d'aprofitar el mateix programa per un país a on la majoria d'edat és als 21 només canviant 1 cop la xifra funcionarà igualment. Ens estalvia feina.

Variables

>>Estan pensades per emmagatzemar dades que aniran canviant durant l'execució del programa.Com que el codi d'aquest programa concret és curt definirem tot com a variable i així simplifiquem.

El codi resultant seria aquest: en negreta el codi del programa en sí i en text normal el codi comú a tots els programes.

/*Data: 18/05/10
Nom fitxer: fills.c
Autor: AJF
Descripció: Programa que donat un nombre d'un grup d'amics i el nombre dels que no tenen fills ens calcula el percentatge dels que no són pares*/

#include

int main(void){

int grup=6;
int sense_fills=5;
int resultat=(sense_fills*100)/grup;
printf("El percentatge dels que no tenen fills es del %d", resultat);

getchar();
getchar();
return(0);
}

Veiem com quedaria el codi escrit amb el Dev-C++:

Clica la imatge per una bona visualització

Un cop escrit el codi amb el programa Dev-C++, l'hauries de guardar des de:
>>Menú Fitxer /Anomena i Desa posar un nom i guardar amb extensió .c.

Un cop guardat ja el pots Compilar i Executar des de:
>>Menú Execució / Compila o clicant F9

Sortirà una pantalla negra a on et mostrarà la frase:

El percentatge dels que no tenen fills es del 83

*No fiquem el % darrere el 83 perquè directament no sortiria per la consola (pantalla negra que mostra l'execució del programa).

Però perquè ens surt el 83 i no el 83.33.?

Doncs bé repassem i intentem entendre el codi:

int grup=6; -- definim la variable grup que és de tipus enter i per tant no pot tenir decimals
int sense_fills=5;-- el mateix però per la variable sense fills
int resultat=(sense_fills*100)/grup;-- el mateix per resultat

Com a resum podem dir que per definir variables fem:
tipus nom=valor; (que és l'estructura que tenen les tres variables anteriors)

Hem definit 3 variables de tipus enter, dues emmagatzemen dades: el total d'amics i el total dels que no tenen fills i la tercera emmagatzema el resultat de l'operació descrita en la resolució del problema i que utilitza les dades de les 2 variables anteriors.

Si volem obtenir decimals hauríem de canviar int per float: el tipus de variable que permet emmagatzemar decimals. Pots provar de fer els dos exercicis i comprovar els canvis amb una i l'altra. És evident que en aquest cas ens aniria millor un float ja que és més precís.

El codi:

printf("El percentatge dels que no tenen fills es del %d", resultat);

El printf vol dir imprimir, però aquest imprimir vol dir que surti per la consola (i no per la impressora!). El que es visualitza a la consola és el que hi ha dins les " ". Dins les cometes tenim %d que vol dir que és un enter i que la variable que haurà de mostrar és resultat. Si vols veure com funciona pots canviar resultat pel nom de les altres variables i veure com t'imprimirà 6 o 5 en funció de quina triïs.

Cap comentari:

Publica un comentari a l'entrada