You are on page 1of 20

Tcniques de programaci

Nom del autor: Alejandro Agera Lopez Curs: Desenvolupament de productes electrnics Nom de lescola: Mil i Fontanals Data de lliurament: 23-11-2011

Tcniques de programaci...........................................................................1 Unitat didctica 2............................................................................................4 Entorn de programaci i primers programes................................................4 Petita definici del que es el llenguatge DEV C++:...................................4 Exercici n 1: Suma, resta, producte, quocient i residu.............................4 Estructura del programa:..........................................................................4 Exercici n 4: Clcul de la resistncia equivalent d'un circuit parallel.......6 Estructura del programa:..........................................................................6 Unidad didctica 3. ........................................................................................8 Estructures bsiques en llenguatge C..........................................................8 Exercici n 4: Canvi ptim:........................................................................8 Diagrama de flux:.....................................................................................8 Estructura del programa:..........................................................................8 Exercici n 6: Escriure, sumar i comptar els nmeros que sn a la vegada mltiples de 2 i de 3:..............................................................................11 Diagrama de flux:...................................................................................11 Estructura del programa:........................................................................12 Exercici n 8: Factorial d'un nmero:......................................................14 Diagrama de flux:...................................................................................14 Estructura del programa:........................................................................14 Exercici n 14: Algoritme de multiplicaci de dos nmeros:....................15 Diagrama de flux:...................................................................................15 Estructura del programa:........................................................................16 Exercici n18: Programa que dibuixi un rectangle:..................................18 Estructura del programa:........................................................................18 Conclusions:...........................................................................................20

Programacin en DEV c++

Unitat didctica 2

Unitat didctica 2.
Entorn de programaci i primers programes.

Petita definici del que es el llenguatge DEV C++:


Dev-C++ es un entorn de desenvolupament integrat (IDE) per a programar en lenguaje C/C++. Utilitza MinGW que es una versin de GCC (GNU Compiler Collection) com a compilador. Dev-C++ pot a mes ser usat en combinaci amb Cygwin i cualsevol compilador basat en GCC. Lentorn esta desenvolupat en el llenguatge Delphi de Borland. Te una pgina de paquets opcionals per a installar, amb diferents biblioteques de codi obert.

Exercici n 1: Suma, resta, producte, quocient i residu. Estructura del programa:


Enunciat del programa: Definiu 7 variables de tipus (int) amb les denominacions: a, b, suma, resta, producte, quocient i residu. Escriviu un programa en el que s'assignen els valors indicats a les variables 'a' i 'b', calculeu la suma, resta, producte, quocient i residu i feu la presentaci en pantalla com en el programa d'exemple. Cos del programa: #include <stdio.h> int main(void) { /*indica quines son les variables a utilitzar*/ int a,b,suma,resta,producte,quocient,residu; /*indica el cos del programa*/ printf("\n Indica el valor del a:"); scanf("%d",&a);
Nom: Alejandro Agera Lpez Pgina 4 de 20

Programacin en DEV c++

Unitat didctica 2

printf("\n Indica el valor del b: "); scanf("%d",&b); suma=a+b; resta=a-b; producte=a*b; quocient=a/b; residu=a%b; /*indica el resultat*/ printf("\n La suma de A y B es:%d",suma); printf("\n La resta de A y B es:%d",resta); printf("\n El producte de A y B es:%d",producte); printf("\n El quocient de A y B es:%d",quocient); printf("\n El residu de A y B es:%d",residu); fflush(stdin); printf("\n\nPREM INTRO PER A TANCAR PROGRAMA!!!.....\n"); // FEM UNA PAUSA getchar(); }

Nom: Alejandro Agera Lpez

Pgina 5 de 20

Programacin en DEV c++

Unitat didctica 2

Exercici n 4: Clcul de la resistncia equivalent d'un circuit parallel Estructura del programa:
Enunciat del programa: Escriviu un programa que calculi la resistncia equivalent duna connexi de tres resistncies en parallel. Definiu quatre variables float anomenades r1, r2, r3, i rt. La resistncia equivalent duna connexi de tres resistncies en parallel s: RT = 1 / (1/R1 + 1/ R2 + 1/R3).*/ Cos del programa: #include <stdio.h> int main(void) { /*indica quines son les variables a utilitzar*/ float r1,r2,r3,rt; /*indica el cos del programa*/ printf("\n resistencia equivalen en parallel"); printf("\n indica el valor de r1:"); scanf("%f",&r1); printf("\n indica el valor de r2:"); scanf("%f",&r2); printf("\n indica el valor de r3:"); scanf("%f",&r3); /*indica el resultat*/ rt=1/(1/r1+1/r2+1/r3); printf("\n La seva resistencia equivalent es:%.2f",rt); fflush(stdin);

Nom: Alejandro Agera Lpez

Pgina 6 de 20

Programacin en DEV c++

Unitat didctica 2

printf("\n\nPREM INTRO PER A TANCAR PROGRAMA!!!.....\n"); // FEM UNA PAUSA getchar(); }

Nom: Alejandro Agera Lpez

Pgina 7 de 20

Programacin en DEV c++

Unitat didctica 3

Unidad didctica 3.
Estructures bsiques en llenguatge C
Exercici n 4: Canvi ptim: Diagrama de flux:
entrada de numero enter

NO entera>=2

SI

m2=entera/2 entera=entera%2

Escriu m2

NO Entera == 1

SI Escriu "1"

sistema condicional.

Estructura del programa:


Nom: Alejandro Agera Lpez Pgina 8 de 20

Programacin en DEV c++

Unitat didctica 3

/*Exercici 4: Enunciat de programa: Enunciat del programa: Escriviu un programa que determini el canvi ptim (nmero mnim de monedes possible) d'una quantitat entera en monedes de 1, 2, 5, 10, 20, i 50 cntims, de 1 o 2 euros. Per exemple per 5,27 Euros el programa ha d'escriure: (part entera 5),(27 part fraccionaria) Part entera 2 monedes de 2 euros 1 moneda d'1 euro Part fraccionaria 1 moneda de 20 centims 1 moneda de 5 centims 1 moneda de 2 centims */

El cos del programa: #include<stdio.h> #include<stdlib.h> int main (void) { //indica les variables: int entera,fraccio,m1,m2,n1; //estructura del programa: printf("\n PROGRAMA PER A CALCULAR EL CANVI OPTIM"); printf("\n entra una quantitat :"); scanf("%d,%d",&entera,&fraccio); m2=entera/2; //indica el resultat o cos del progrma:
Nom: Alejandro Agera Lpez Pgina 9 de 20

Programacin en DEV c++

Unitat didctica 3

if (m2>=1) { printf("\n Les monedes de 2euros son: %d",m2); m1=entera-2*m2; printf("\n Les monedes de 1euro son: %d",m1); } n1=fraccio/50; if (n1>=1) { printf("\n Les monedes de 50 cts son: %d",n1); fraccio=fraccio-50; } n1=fraccio/20; if (n1>=1) { printf("\n Les monedes de 20 cts son: %d",n1); fraccio=fraccio-20; } n1=fraccio/10; if (n1>=1) { printf("\n Les monedes de 10 cts son: %d",n1); fraccio=fraccio-10; } n1=fraccio/5; if (n1>=1) {
Nom: Alejandro Agera Lpez Pgina 10 de 20

Programacin en DEV c++

Unitat didctica 3

printf("\n Les monedes de 5 cts son: %d",n1); fraccio=fraccio-5; } n1=fraccio/2; if (n1>=1) { printf("\n Les monedes de 2 cts son: %d",n1); fraccio=fraccio-2; printf("\n Les monedes de 1 cts son: %d",fraccio); } //pausa per a visualitzar en la pantalla: fflush(stdin); printf("\n PREM INTRO PER A TANCAR PROGRAMA!!!.....\n"); // FEM UNA PAUSA indicada en pantalla getchar();//tanca el progrma pulsant intro }

Exercici n 6: Escriure, sumar i comptar els nmeros que sn a la vegada mltiples de 2 i de 3: Diagrama de flux:
Nom: Alejandro Agera Lpez Pgina 11 de 20

Programacin en DEV c++

Unitat didctica 3

INICI

Indica un numero

contador=1

NO contador<=n2 SI

NO contador%2==0 && contador%3==0

SI imprimir contador

contador++

FI del programa

Estructura del programa:


/*Exercici 6: Enunciat de programa: Enunciat del programa: Escriure, sumar i comptar els nmeros que sn a la vegada mltiples de 2 i de 3,
Nom: Alejandro Agera Lpez Pgina 12 de 20

Programacin en DEV c++

Unitat didctica 3

que hi ha entre la unitat i un nmero enter, qualsevol entrat pel teclat. Feu tamb el diagrama de flux. Cos del programa: #include <stdio.h> int main() { int n1=0; int n2=0; int contador=1; int contador2=0; int suma=0; printf("indica numero :"); scanf("%d",&n2);

printf("\nEls nombres multiple de 2 i 3 entre 1 i %d, son: ",n2); while(contador<=n2) { if (contador%2==0 && contador%3==0) { printf(" %d,",contador); suma=suma+contador; contador2++; } contador++; } printf("\nLa suma del nombres multiples de 2 i 3 es : %d, ",suma); printf("\nEl nombre de numeros multiples de 2 i 3 es : %d, ",contador2); //pausa per a visualitzar en la pantalla:
Nom: Alejandro Agera Lpez Pgina 13 de 20

Programacin en DEV c++

Unitat didctica 3

fflush(stdin); printf("\n PREM INTRO PER A TANCAR PROGRAMA!!!.....\n"); // FEM UNA PAUSA indicada en pantalla getchar();//tanca el progrma pulsant intro (getch() tmb ace esta funcion. }

Exercici n 8: Factorial d'un nmero: Diagrama de flux:


Introdueix un nombre

Contador=numero

NO Contador>=1

SI Factorial = factorial * contador

Imprimir la multiplicacio del factorial del nombre entrat

Estructura del programa:


/*Exercic8: Enunciat del programa: Clcul del factorial d'un numero (mnim fins a 100). Feu tamb el diagrama de flux.
Nom: Alejandro Agera Lpez Pgina 14 de 20

Programacin en DEV c++

Unitat didctica 3

Cos del programa: #include<stdio.h> int main() { int num,contador,fact=1; printf("::FACTORIAL::"); printf("\nIntroduce un numero: "); scanf("%d",&num); contador=num; printf("\n %d! = ",num); while(contador>=1) { printf ("%d X ",contador); fact = fact*contador; contador--; } printf(" = %d,", fact); //pausa per a visualitzar en la pantalla: fflush(stdin); printf("\n PREM INTRO PER A TANCAR PROGRAMA!!!.....\n"); // FEM UNA PAUSA indicada en pantalla getchar();//tanca el progrma pulsant intro (getch() tmb ace esta funcion. }

Exercici n 14: Algoritme de multiplicaci de dos nmeros: Diagrama de flux:

Nom: Alejandro Agera Lpez

Pgina 15 de 20

Programacin en DEV c++

Unitat didctica 3

Entra els dos nombres

Primir n1 y n2

if(n1%2==1)

n1=n1/2 n2=n2*2

Suma = Suma

Primir el resultat de la suma

FI

Estructura del programa:


/*Exercic14: Enunciat del programa: Heu descriure un programa fent servir la sentncia do...while, per tal de fer la multiplicaci de dos nombres enters duna forma molt especial. Agafeu un full de paper i escriviu dos nombres, un al costat de laltre i formeu dues columnes aplicant repetidament la segent regla:

El primer nombre es divideix per dos i es colloca el quocient enter a sota. El segon nombre es multiplica per dos i es colloca a sota. Aquest procediment se segueix fins que sobtingui un 1 a la primera columna.

Per exemple, amb els nmeros 46 i 43 farem: A B


Pgina 16 de 20

Nom: Alejandro Agera Lpez

Programacin en DEV c++

Unitat didctica 3

46 23 11 5 2 1

43 86 172 344 688 1376

A continuaci ratlleu les files en qu el primer dels nombres sigui senar i sumeu els nmeros ratllats de la segona columna:

86 + 172 + 344 + 1376 = 1978 El resultat obtingut (1978), s casualment el producte de 46 i 43. Escriviu un programa que fent servir l'estructura do...while, realitzi aquest algorisme de multiplicaci i vagi escrivint en la pantalla les dues columnes, a l'acabar, faci la suma i presenti el resultat a pantalla. Cos del programa:

#include<stdio.h> int main () { int n1,n2,resultat,suma=0; printf("\n Entra el primer nombre:"); scanf("%d",&n1); printf("\n Entra el segon nombre:"); scanf("%d",&n2); do { printf("\n%d\t%d",n1,n2);
Nom: Alejandro Agera Lpez Pgina 17 de 20

Programacin en DEV c++

Unitat didctica 3

if(n1%2==1)//impar sumar { suma=n2+suma;} else { suma=suma; } n1=n1/2; n2=n2*2; } while(n1!=0); printf("\nEl resultat de la suma es = %d",suma); //pausa per a visualitzar en la pantalla: fflush(stdin); printf("\nprem una tecla per finalitzar....\n"); //Fem una pausa getchar(); } La part ms significativa o ms important. Seria aquesta part on dintre dun dowhile esta una sentencia if y la seva contraria else. Per a determina si un nombre es par o senar.

Exercici n18: Programa que dibuixi un rectangle: Estructura del programa:


Nom: Alejandro Agera Lpez Pgina 18 de 20

Programacin en DEV c++

Unitat didctica 3

/*Exercic18: Enunciat del programa: Escriu un programa que demani a lusuari lamplada i lalada dun rectangle i el dibuixi en la pantalla amb el carcter X. Cos del programa: #include <stdio.h> int main (void) { int amplada,alcada,x,y; printf(":::: dibuix de un rectangle ::::"); printf("\n indica l'amplanda del rectangle :"); scanf("%d",&amplada); printf("\n indica l'alcada del rectangle :"); scanf("%d",&alcada); for(x=1;x<=alcada;x++)
{

La part ms significativa o ms important seria aquesta part. On esta una sentencia For dintre duna altre sentencia For. Si no fos aix per pantalla nomes visualitzarem un costat del rectangle o be la alada o be lamplada depenent de la primera condici del for primer

printf("\n"); for(y=1;y<=amplada;y++) { printf("X"); } } //Fem una pausa fflush(stdin);

printf("\nprem una tecla per finalitzar....\n"); getchar(); }


Nom: Alejandro Agera Lpez Pgina 19 de 20

Programacin en DEV c++

Unitat didctica 3

Conclusions:
El treball esta fet amb dos programes diferents un es el Dev C++ per a recopilar els cos o el codi del programa a realitzar en els diferents apartats daquest i laltre programa es el diagram designer per a realitzar els diagrames de flux dels diferents codis o programes determinant la seva funci a realitzar.

Nom: Alejandro Agera Lpez

Pgina 20 de 20

You might also like