You are on page 1of 48

Matemtica && Programao uma parceria perfeita

Autora: Anita Lopes 2006

Se a Matemtica a cincia da lgica e, se para programar precisamos de lgica, ento...(Anita Lopes, 2006) Desde 1987 que sou professora universitria e ministro disciplinas de Linguagens de Programao nos cursos de Sistemas de Informao e de Engenharia. Durante todos esses anos, sempre permeou uma questo: por que necessrio saber Matemtica para programar? Esse projeto se tornou concreto a partir de 2006 quando decidi que precisava tentar esclarecer essa questo, procurando relacionar cada tpico selecionado da Matemtica com comandos/ funes das linguagens de programao. Para que pudesse exemplificar, escolhi a linguagem C++. Comeo na Teoria dos Conjuntos e termino com lgebra das Matrizes, passando por conceitos bsicos tais como: sistemas de numerao, operaes aritmticas, conceito de nmero primo, nmero quadrado perfeito, MDC, MMC, fraes, porcentagem, expresses relacionais, entre outros. Um dos meus objetivos do presente trabalho mostrar que tanto a Matemtica quanto a Programao tm linguagens prprias que precisam ser bem aprendidas para que possamos fazer uso delas sem nenhuma dificuldade. Tenho tambm a pretenso de faz-los adorar a Matemtica, pois como afirma Devlin (2004,p 2): A matemtica tornou-se o estudo dos nmeros, da forma, do movimento, da mudana e do espao. A ordem apresentada ser a dos conceitos Matemticos e, por essa razo, muitos trechos de programas podero apresentar estruturas que voc ainda no aprendeu quando estiver lendo, em seqncia, esse estudo, mas isto no importa, pois voc retornar a eles quando dominar todas as estruturas. Os exemplos sero apresentados na linguagem C++. Em alguns momentos, farei referncia linguagem Pascal porque muitos livros de algoritmos fazem uso do portugol que uma linguagem descritiva, em portugus, baseada entre outras, na linguagem Pascal. No conseguirei abranger todo o contedo de Matemtica que aprendemos at chegarmos universidade, mas tentarei recordar os contedos mais usados como exemplos nos exerccios de programao. Anita Lopes

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
1.

2006

Nmero
a idia de quantidade. Sua representao depende do sistema. No sistema decimal hindo-arbico, todos os nmeros so formados pelos algarismos de 0 at 9. No sistema romano, todos os nmeros so formados pelas letras: I(1), V(5), X(10), L(50), C(100), D(500) e M(1000). Aplicao: Suponha que voc deseje fazer um programa que entre com umas letras bsicas do sistema romano e mostre o nmero correspondente no sistema decimal. #include <iostream> #include <cstring> using namespace std; int main() { char romano; cout<<"\nDigite uma letra do sistema romano: "; cin>>romano; romano=toupper(romano); cout<<"\nNo sistema decimal: "; switch(romano) { case 'I': cout<<"1\n\n"; break; case 'V': cout<<"5\n\n"; break; case 'X': cout<<"10\n\n "; break; case 'L': cout<<"50\n\n "; break; case 'C': cout<<"100\n\n "; break; case 'D': cout<<"500\n\n "; break; case 'M': cout<<"1000\n"; break; default: printf(" nao corresponde a nenhum numero porque nao eh uma letra do sistema Romano\n\n "); } system("pause"); }

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
2.

2006

Os conjuntos

N(Natural) = {0,1,2 ... }. Z(Inteiro) = {... 2 1 0 1 2 ...}. Q(Racional) = { x | x=a/b, com a Z, b Z e b 0}. R(Real) = { x | x Q ou x I} Observao: No inclui o conjunto dos complexos. As linguagens de programao procuram, dentro do possvel, criar tipos de dados primitivos que suportem os conjuntos acima, com limitao, pois no poderemos chegar ao infinito. No tenho como objetivo, nesse estudo, um aprofundamento de todos os tipos de dados usados na linguageM C++, mas fazer a associao com o conceito da Matemtica sobre os conjuntos inteiro e real. Logo, s apresentarei os tipos bsicos e que possuem correspondncia nas trs linguagens. Linguagem C++ Z - int R - float

3.

As operaes

Relembrando os termos das quatro operaes bsicas:


ADIO SUBTRAO MULTIPLICAO DIVISO POTENCIAO RADICIAO Parcela, parcela, soma ou total Minuendo, subtraendo e resto Multiplicando, multiplicador e produto(fator, fator e produto) Dividendo, divisor, quociente e resto Base e expoente Radicando e ndice.

adio e subtrao.

Hierarquia das operaes: 1a) potenciao/radiciao; 2a) multiplicao/diviso 3a)

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Se voc precisar que uma operao de hierarquia menor seja executada primeira, use parnteses. Observe os exemplos abaixo.

o resultado um inteiro, mas nem sempre acontece isso quando dividimos dois inteiros, logo a diviso(/) sempre retornar um resultado no conjunto dos reais.

Somar(+), subtrair(-) ou multiplicar(*) dois inteiros, pela propriedade do fechamento,

Somar(+), subtrair(-), multiplicar(*) ou dividir(/) dois reais(ou um inteiro e um real), pela propriedade do fechamento, o resultado um real.
Agora voc me confundiu. Quando dividimos dois inteiros, retornou inteiro. Calma! As linguagens de programao fazem algumas adaptaes. Leia a nota abaixo.

Nas linguagens de programao C/ C++/ Kenya, o operador de diviso(/) retornar um nmero inteiro se o dividendo e o divisor forem inteiros, mas, se desejarmos que a operao seja realizada como real, acrescente .0 em um dos nmeros. Aplicao: Exibe o quociente inteiro e o real da diviso de 23 por 2. #include <iostream> using namespace std; int main() { cout<<"\nDivisao inteira: "<<23/2; cout<<"\nDivisao real: "<<23.0/2<<endl; system("pause"); }

A potnciao a multiplicao de um fator que se repete e tem a seguinte notao:


expoente , onde a base o fator que se repete e o expoente a quantidade de base

vezes que a base se repete. Tanto a base quanto o expoente so nmeros que pertencem ao conjunto dos reais. Algumas linguagens de programao apresentam o
4

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

operador de potenciao: ** ou ^, mas na linguagem C++ no existe operador para potenciao. Entretanto, a linguagem C++ disponibiliza a funo pow(base,expoente). Quando no existir a funo pow(base,expoente), poderemos usar a expresso que ser deduzida a seguinte expresso, usando funes que esto presentes em todas as linguagens, exp( ) e log( ) mesmo que, algumas vezes, a notao seja diferente. Funo exp() - calcula a potncia da base e(neperiana) Funo log( ) uma funo inversvel cuja funo inversa a exponenciao. Sua representao:
N log b = x

onde x

o nmero que devemos elevar b

para obter N. bom ressaltar que x um nmero real(racional ou irracional). O logaritmo natural(logaritmo neperiano) o logaritmo cuja base : e, aproximadamente 2,71828...Na Matemtica usamos ln quando desejamos calcular o logaritmo na base e. Converso entre base logartmicas: logb =
a a logx b logx

Em programao: log(a)/log(b). Restries: N(logaritmando) precisa ser maior do que 0 e a b(base) precisa ser maior do que 0 e diferente de 1 Deduzindo a expresso que substitui o operador de potenciao ou a funo pow(,) logo, e, se substituirmos o valor de x, teremos ento

se desejarmos uma potncia representada por por uma das propriedade dos logaritmos se b a base neperiana(e), ento

Como a funo logaritmo neperiano representada na Matemtica por ln, ento

As linguagens de programao sempre disponibilizam duas funes: exponenciao e logaritmo, ambas na base neperiana, com as seguintes sintaxes: log( argumento) ou ln( argumento) e exp( argumento)
5

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Aps essa demonstrao Matemtica, podemos construir nossa expresso final:

Reconheo que li muitas vezes para entender e admito que achei muito interessante, mas quando vou precisar us-la?

Acho que j estou lhe convencendo que a Matemtica fantstica. Essa expresso dever ser usada nas linguagens que no possurem operadores/funes de potenciao.

Aplicao: Entra com a base e o expoente e exibe a potncia usando exp() e log(). #include <iostream> #include <cmath> using namespace std; int main() { float base, expoente, potencia; cout<<"\nDigite base: "; cin>>base; cout<<"\nDigite expoente: "; cin>>expoente; potencia= exp(expoente * log(base)); cout<<"\nPotencia: " << potencia<<endl; system("pause"); } Ento, na linguagem C++ poderemos usar essa expresso ou usar a funo pow(base,expoente). Perfeito! Acredito ser mais simples usar a funo pow(base,expoente), mas, no Pascal, teramos que usar essa expresso.

Aplicao: Entra com a base e o expoente e exibe a potncia usando pow(,). #include <iostream> #include <cmath> using namespace std; int main() { float base, expoente, potencia; cout<<"\nDigite base: "; cin>>base; cout<<"\nDigite expoente: "; cin>>expoente;
6

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
potencia= pow(base,expoente); cout<<"\nPotencia: " << potencia<<endl; system("pause"); } A radiciao o inverso da potenciao logo, poderemos usar a expresso que foi deduzida para a potenciao com algumas modificaes ou, usar a funo pow(base,expoente) quando a linguagem disponibiliz-la.

2006

Aplicao: Entra com radicando e o expoente e exibe a potncia usando exp() e log(). #include <iostream> #include <cmath> using namespace std; int main() { float radicando, indice,raiz, raizExp; cout<<"\nDigite o radicando: "; cin>>radicando; cout<<"\nDigite o indice: "; cin>>indice; if(radicando > 0 && ndice >1) { raiz= pow(radicando,1/indice); raizExp=exp(1/indice * log(radicando)); cout<<"\nRaiz: " << raiz<<endl; cout<<"\nRaiz usando a expressao: " << raizExp<<endl; } else cout<< system("pause"); }

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

obteremos um nmero inteiro.

Nmero Quadrado Perfeito um nmero que se extrairmos sua raiz quadrada,

#include <iostream> #include <cmath> using namespace std; int main() { float rad,raiz;int indice; cout<<"\nDigte Radicando: "; cin>>rad; cout<<"\nDigte Indice: "; cin>>indice; if(indice < 2) cout<<"\nNao existe raiz para indice menor que 2\n"; else if( rad >=0 ) { raiz=pow(rad, (float)1./indice); if(raiz==floor(raiz)) cout<<"\nQuadrado perfeito\n"; else cout<<"\nNAO eh Quadrado perfeito\n"; } else cout<<"\nNao existe Raiz no conjunto dos Reais\n"; system("pause"); }

4.

O sistema decimal
um sistema posicional. A base desse sistema o nmero 10. Cada algarismo tem um valor absoluto e um valor relativo: Valor absoluto valor do algarismo. Valor relativo valor do algarismo multiplicado pela potncia de 10 da posio em que ele se encontra dentro do nmero. Observe a figura abaixo:

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Observe um nmero posicionado nesse quadro e entenda os conceitos de valor absoluto e valor relativo.

Agora vamos aprender como conseguimos fazer isso em programao: Na linguagem Pascal, temos dois operadores que efetuam a diviso inteira entre dois nmeros inteiros: div(retorna o quociente inteiro) e mod(retorna o resto). Na linguagem C++, por definio, o operador de diviso / retorna um quociente inteiro se o numerador(dividendo) e o denominador(divisor) forem inteiros e, para retornar o resto de uma diviso de inteiros, existe o operador % que tem a mesma finalidade de mod do Pascal.

Se trabalharmos com as potncias de 10, poderemos descobrir o valor absoluto e o valor relativo de cada algarismo. Vamos descobrir do algarismo 7 no nmero 32758.
9

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Vamos agora praticar.

Como vou saber se acertei?

Calma! Vamos fazer juntos.

Tente agora montar as expresses que representam os valores absoluto e relativo do algarismo da casa das unidades de milhar do nmero 32758. Valor absoluto (32758 / 1000) % 10 Valor relativo (32758 / 1000 % 10) * 1000

10

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Tente agora montar as expresses que representam os valores absoluto e relativo do algarismo da casa das centenas de milhar do nmero 4352768. Valor absoluto (4352768 / 100000) % 10 Valor relativo ((4352768 / 100000) % 10) * 100000 Tente agora montar as expresses que representam os valores absoluto e relativo do algarismo da casa das unidades de milho do nmero 8123982. 8123982 / 1000000 (para o algarismo mais esquerda, s Valor absoluto esta operao suficiente) Valor relativo (8123982 / 1000000) * 1000000 Tente agora montar as expresses que representam os valores absoluto e relativo do algarismo da casa das unidades simples do nmero 8123982. 8123982 % 10 (para o algarismo mais direita, s esta Valor absoluto operao suficiente) Valor relativo 8123982 % 10 ( multiplicar por 1, desnecessrio) Tente agora montar a expresso que retira a classe das unidades de milhar do nmero 8123982. Classe das unidades de milhar (8123982 / 1000) % 1000 Tente agora montar a expresso que retira o dia da data 230389. Dia 230389 / 10000 Tente agora montar a expresso que retira o ms da data 230389. Mes (230389 / 100) % 100 Tente agora montar a expresso que retira o ano da data 230389. Ano 230389 % 100 Voc tem um disco com 4 setores, numerados de 0-3. Quando voc escolhe um nmero, sua aposta no seguinte. Faa um programa, sem usar if, que possibilite este jogo. #include <iostream> using namespace std; int main() { int numero, aposta; cout<<"\nDigite numero de 0-3: "; cin>>numero; while(numero<0 || numero > 3) { cout<<"\nSo numeros de 0 ate 3.
11

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006
Digite novamente: "; cin>>numero; } aposta=(numero + 1) %4; cout<<"\nSua aposta: "<<aposta<<endl; system("pause"); } Acho que esses dois operadores(/ e %) podero resolver meu problema do nmero capicua. Ual! Estou gostando de ver. O nmero capicua muito interessante. Estou me lembrando da data 20022002

Nmero capicua um nmero que, lido da esquerda para direita, igual ao lido da direita para esquerda. Exemplo: 2332
#include <iostream> using namespace std; int main() { int num,numC, inv; cout<<"\nNumero: "; cin>>num; numC=num; // para nao perder o valor inicial //inicio do trecho que inverte o numero inv=0; while(numC > 0) { inv = inv * 10 + numC%10; numC /= 10; } //fim do trecho if(num == inv) cout<<"\nEh CAPICUA\n"; else cout<<"\nNAO eh CAPICUA\n"; system("pause"); }

12

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
5.

2006

Alguns conceitos

Mdulo de um nmero inteiro

Na linguagem C++, temos a funo abs(argumento)

Nmeros inteiros opostos ou simtricos

Para obtermos o simtrico, multiplique o nmero por 1.

Inverso de um nmero inteiro


1 / num , mas, na linguagem C++, voc precisa colocar .0 no 1: 1.0 / num.

Gostei, pois sempre me confundia quando falavam em inverso e simtrico.

Ento, sorria. Voc est sempre com uma expresso to desconfiada!

13

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
6.

2006

Divisores/ Mltiplos
As regras da divisibilidade so mais complicadas de se usar em programao do que o operador % (mod ). Atravs de um simples teste, poderemos verificar se um nmero , ou no, mltiplo de outro: C++ if(num1 % num2 == 0 ) Pascal if num1 mod num2 = 0 then Intervalos Nunca entendi bem essa histria de aberto e fechado. Pode explicar?

Claro! Vou mostrar na figura abaixo.

14

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Como identificar, em um intervalo, qual o menor e o maior mltiplo de um nmero?

#include <iostream> using namespace std; int main() { int li, ls, num; cout<<"\nDigte limite inferior: "; cin>>li; cout<<"\nDigte limite superior: "; cin>>ls; cout<<"\nDigte numero: "; cin>>num; if(li % num == 0) cout<<"\nMenor: "<<li; else cout<<"\nMenor: "<<li + (num - li % num); cout<<"\nMaior: "<< ls - ls % num; cout<<"\n\n"; system("pause"); } Como descobrir os divisores de um nmero?

15

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
#include <iostream> using namespace std; int main() { int x, num; cout<<"\nDigte numero: "; cin>>num; for(x=1;x<=num;x++) if( num % x == 0) cout<<x<<"\t"; cout<<"\n\n"; system("pause"); } O programa dos divisores ser base de muitos outros programas que, embora tenham outras solues melhores, voc poder us-lo para descobrir se um nmero primo ou se dois nmeros so primos entre si ou se um nmero perfeito, entre outros.

2006

Nmero Primo um nmero que s tem dois divisores: 1 e o prprio nmero, logo 1 no primo e 2 o nico nmero par que primo.
#include <iostream> using namespace std; int main() { int x, num, contaDivisores=0; cout<<"\nDigte numero: "; cin>>num; for(x=1; x<=num && contaDivisores <=2 ; x++) if( num % x == 0) contaDivisores++; if(contaDivisores == 2) cout<<"\nPrimo\n"; else cout<<"\nNAO Primo\n"; cout<<"\n\n"; system("pause"); }

MDC pelo mtodo da fatorao ou pelo algoritmo de Euclides:

MDC significa o maior divisor comum de dois, ou mais nmeros. Ns podemos achar o

16

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Apresentarei duas solues, sendo que a primeira ser fiel ao Algoritmo de Euclides e a segunda, no far o teste para ordenar. #include <iostream> #include <iostream> using namespace std; using namespace std; int main() int main() { { int dividendo, divisor,resto; int dividendo, divisor,aux,resto; cout<<"\ndigite 1o numero: "; cout<<"\ndigite 1o numero: "; cin>>dividendo; cin>>dividendo; cout<<"\ndigite 2o numero: "; cout<<"\ndigite 2o numero: "; cin>>divisor; cin>>divisor; resto= dividendo % divisor; if( dividendo < divisor ) while( resto != 0) { { aux=dividendo; dividendo = divisor; dividendo=divisor; divisor = resto; divisor=aux; resto = dividendo % divisor; } } resto= dividendo % divisor; cout<<"\nMDC: "<<divisor; while( resto != 0) cout<<"\n\n"; { system("pause"); dividendo = divisor; } divisor = resto; resto = dividendo % divisor; }
17

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
cout<<"\nMDC: "<<divisor; cout<<"\n\n"; system("pause"); }

2006

construo desse programa, faremos uso do programa do MDC: #include <iostream> using namespace std; int main() { int dividendo, divisor,resto; cout<<"\ndigite 1o numero: "; cin>>dividendo; cout<<"\ndigite 2o numero: "; cin>>divisor; resto= dividendo % divisor; while( resto != 0) { dividendo = divisor; divisor = resto; resto = dividendo % divisor; } if( divisor ==1 ) cout<<"\nPrimos entre si"; else cout<<"\nNAO sao Primos entre si"; cout<<"\n\n"; system("pause"); }

Nmeros primos entre si so nmeros cujo nico divisor comum o nmero 1. Para a

18

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
(exemplos: 6, 28,...).

2006

Nmero Perfeito um nmero cuja soma de seus divisores, exceto ele, igual a ele

#include <iostream> using namespace std; int main() { int x, num, soma=0; cout<<"\nDigte numero: "; cin>>num; for(x=1;x<num;x++) if( num % x == 0) soma+=x; if( soma == num ) cout<<"\nPerfeito"; else cout<<"\nNAO Perfeito"; cout<<"\n\n"; system("pause"); }

Nmeros Amigos so dois nmeros cuja soma dos divisores de um dos nmeros, exceto ele, igual ao outro nmero e, vice-versa.
#include <iostream> using namespace std; int main() { int x, num1, num2, soma1=0, soma2=0; cout<<"\nDigte 1o numero: "; cin>>num1; cout<<"\nDigte 1o numero: "; cin>>num2; for(x=1;x<num1;x++) if( num1 % x == 0) soma1+=x; for(x=1;x<num2;x++) if( num2 % x == 0) soma2+=x; if( soma1== num2 && soma2 == num1 ) cout<<"\nNumeros Amigos"; else cout<<"\Nao sao amigos";
19

//Solucao com funao #include <iostream> using namespace std; int amigos(int n) { int x, s=0; for(x=1;x<n;x++) if( n % x == 0) s+=x; return s; } int main() { int num1, num2, soma1, soma2; cout<<"\nDigte 1o numero: "; cin>>num1; cout<<"\nDigte 1o numero: "; cin>>num2;

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
cout<<"\n\n"; system("pause"); }

2006
soma1=amigos(num1); soma2=amigos(num2); if( soma1== num2 && soma2 == num1 ) cout<<"\nNumeros Amigos"; else cout<<"\Nao sao amigos"; cout<<"\n\n"; system("pause"); }

Gostei dessa histria de nmeros amigos. So muitos?

No, mas a busca no acabou.

MMC pelo mtodo da fatorao ou pela soma:

MMC significa o menor mltiplo comum de dois ou mais nmeros. Ns podemos achar o

#include <iostream> using namespace std; int main() { int a,b,aux,mmc; cout<<"\ndigite primeiro numero: "; cin>> a; cout<<"\ndigite segundo numero: "; cin>>b; if( a < b ) { //troca os valores de a e b aux=a; a=b; b=aux; } mmc=a; while( mmc % b != 0) mmc= mmc+a; cout<<"\nMMC: "<<mmc<<"\n\n"; system("pause"); }
20

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
6.

2006

Mdias

Mdia aritmtica uma frao cujo numerador a soma dos valores e, no denominador
a quantidade de valores somados.

peso1) e, no denominador, a soma dos pesos.

Mdia ponderada uma frao cujo numerador somatrio de vrios produtos(valor x

Mdia Geomtrica a raiz ensima do produto dos n valores.

Aplicao: Entra com a nota da prova, a nota do trabalho e com os respectivos pesos. Exibe a mdia ponderada. #include <iostream> using namespace std; int main() { float nota, trab, pesoN, pesoT, mp; cout<<"\nDigte nota da prova: "; cin>>nota; cout<<"\nDigte nota do trabalho: "; cin>>trab; cout<<"\nDigte peso da prova: "; cin>>pesoN; cout<<"\nDigte peso do trabalho: "; cin>>pesoT; mp= (nota*pesoN + trab*pesoT) /(pesoN
21

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
+ pesoT); cout<<"\nMedia Ponderada: "<< mp; cout<<"\n\n"; system("pause"); }

2006

7.

Porcentagem
Muitos de nossos programas iro precisar desse conceito. O smbolo de porcentagem %. uma forma de se comparar dois nmeros e resulta de uma regra de trs simples. A primeira frao ter como denominador o nmero que representa uma parte do outro nmero e, como denominador, o maior nmero. A segunda frao ter como denominador 100 e no numerador, uma incgnita porque o que desejamos calcular. Confuso. Voc pode dar um exemplo? Claro! Observe a aplicao abaixo.

Aplicao Suponha que voc tenha um conjunto de 40 alunos e, nesse conjunto, existem 15 alunos que esto com mdia igual ou superior a 9,0 em Algoritmos. Voc gostaria de saber que percentual esse grupo representa.

Essa, eu entendi, mas, 37,5%, acho demais.

Claro que no.Se voc fizer todos os exerccios propostos, far parte desse grupo.

Voc pode relembrar como transformo 30% em nmero?

Com certeza!

30%: Voc fala trinta por cento. Substitua o por pela diviso e o cento, por 100.

22

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes

2006

Porcentagem usada em expresses que representam acrscimos em salrios ou aluguis, dedues em compras, etc. Aplicao: Suponha que o salrio ser reajustado em 7%: Matemtica C++ Acrscimo = salario x

7 100

Acrescimo = salario * 7/100 ; Acrescimo = salario * 0.07 ;

Acrscimo = salario x 0,07 Novo salario = salario + salario x

7 100

NovoSalario = salario + salario * 7/100; NovoSalario = salario + salario * 0.07;

Novo salario = salario + salario x 0,07

Se usssemos a propriedade distributiva: salario(1 + 0,07) = salario x 1,07 Novo salario = salario x 1,07 NovoSalario = salario * 1.07;

Lembre-se de que na linguagem C++ quando dividimos um nmero inteiro por um inteiro, o resultado ser um inteiro. Sendo assim no se esquea de converter para real: 7.0/100 ou (float) 7/100 se voc inverter a expresso: 7/100 * salrio, ficando assim: 7.0/100 * salrio ou (float) 7/100 * salario Se o percentual de reajuste for desconhecido, ento teramos que usar a expresso: Matemtica Novo salario= salario + salario x C++

indice 100

NovoSalario = salario + salrio * indice /100;

Desconto em uma compra: O desconto ser de 12% se a compra for a vista. Matemtica C++ Desconto = valor x

12 100

Desconto = valor * 12/100 ; Desconto = valor * 0.12 ;

Desconto = valor x 0,12 Novo valor = valor - valor x

12 100

NovoValor = valor - valor * 12/100 ; NovoValor = valor - valor * 0.12; valor(1 - 0,12) = valor x 0,88.

Novo valor = valor - valor x 0,12

Se usssemos a propriedade distributiva:

23

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
Novo valor = valor x 0,88 NovoValor = valor * 0.88;

2006

Se ndice do desconto for desconhecido, ento teramos que usar a expresso: Matemtica C++ NovoValor = valor valor * indice /100;

No se esquea que o ndice, expresso em percentual, sempre um valor real. Aplicao: Entrar com o salrio e o ndice de reajuste. Exibir o novo salrio. #include <iostream> using namespace std; int main() { float salario, novoSalario, indice; cout<<"\nDigite o salario: "; cin>>salario; cout<<"\nDigite o indice de reajuste em porcentagem: "; cin>>indice; novoSalario=salario+ salario*indice/100; cout<<"\nNovo salario R$ " << novoSalario<<endl; system("pause"); }

24

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
8.

2006

Tringulos
Tringulo um polgono que tem trs lados A condio para que trs nmeros possam ser lados de um tringulo :

No C++: if(a<b+c && b<a+c & c<a+b) A classificao dos tringulos quanto aos lados:

A classificao dos tringulos quanto aos ngulos:

O teorema de Pitgoras: O quadrado da hipotenusa igual soma dos quadrados dos catetos. Pelo teorema de Pitgoras e sua extenso, podemos classificar os tringulos quantos aos ngulos, tendo em vista os lados: Tringulo Retngulo Tringulo Obtusngulo Tringulo Acutngulo

25

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Aplicao: Entrar com trs nmeros que representam os lados de um triangulo e classific-lo segundo os lados. #include <iostream> using namespace std; int main() { float a,b,c; cout<<"\nDigite o primeiro lado: "; cin>>a; cout<<"\nDigite o segundo lado: "; cin>>b; cout<<"\nDigite o terceiro lado: "; cin>>c; if(a<b+c && b<a+c & c<a+b) if(a==b && a==c) cout<<"\nEQUILATERO\n"; else if(a==b || a==c || b==c) cout<<"\nISOSCELES\n"; else cout<<"\nESCALENO\n"; else cout<<"\nNao formam um triangulo\n"; system("pause"); } Aplicao: Entrar com trs nmeros que representam os lados de um triangulo e classific-lo segundo os ngulos. #include <iostream> using namespace std; int main() { float a,b,c,hip, cat1,cat2; cout<<"\nDigite o primeiro lado: "; cin>>a; cout<<"\nDigite o segundo lado: "; cin>>b; cout<<"\nDigite o terceiro lado: "; cin>>c; if(a<b+c && b<a+c & c<a+b) { if(a>b && a>c) { hip=a; cat1=b; cat2=c; } else if(b > c)
26

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
{ hip=b; cat1=a; cat2=c; } else { hip=c; cat1=a; cat2=b; } if(hip*hip == cat1*cat1 + cat2*cat2) cout<<"\nRETANGULO\n"; else if(hip*hip > cat1*cat1 + cat2*cat2) cout<<"\nOBTUSANGULO\n"; else cout<<"\nACUTANGULO\n"; } else cout<<"\nNao formam um triangulo\n"; system("pause"); }

2006

9.

reas e Permetros das Figuras Bsicas

Voc no vai dar nenhum exemplo?


27

Est bem.Vou fazer um exemplo com retngulo.

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Aplicao: Entrar com a largura e o comprimento de uma sala e exibir quantos metros quadrados sero necessrios para revestir o cho de granito e quantos metros lineares sero necessrios para o rodap sem considerar os arremates. #include <iostream> using namespace std; int main() { float largura, comprimento; cout<<"\nDigite a largura da sala: "; cin>>largura; cout<<"\nDigite o comprimento da sala: "; cin>>comprimento; cout<<"\nVoce precisara comprar "<<largura * comprimento<<" metros quadrados de granito para o chao\n "; cout<<"\nVoce precisara comprar "<<2*(largura + comprimento)<<" metros lineares de rodape\n\n"; system("pause"); }

10.

Relaes Trigonomtricas

sen 2 + cos 2 = 1
tangente = sen cos 1 secante = cos
cotangente = 1 tangente 1 cossecante = sen

28

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

No se esquea que as funes sin( ), cos( ) e tan( ) exigem que o ngulo seja dado em radianos, ou convertido para radiano.

Como mesmo que se converte de graus para radianos? Voc falou muito rpido. V mais devagar, por favor, pois tem mais de dez anos que no estudo.

Simples: multiplique o ngulo graus por PI e divida por 180.

em

Temos duas unidades para medir os ngulos: grau, do seu transferidor, e radiano. Leia a nota para saber porque a medida radiano escolhida.

O radiano (smbolo: rad) a unidade de medida do Sistema Internacional de Unidades (sigla: SI) que um conjunto de definies utilizado na maioria dos pases, visando uniformizar. Aplicao #include <iostream> #include <cmath> using namespace std; int main() { float angulo, rang; cout<<"\nangulo: "; cin>>angulo; rang= angulo*M_PI/180; cout<<"\nseno : "<<sin(rang)<<"\n"; cout<<"\nco-seno : "<<cos(rang)<<"\n"; cout<<"\ntangente : "<<tan(rang)<<"\n"; cout<<"\nco-secante : "<<1/sin(rang)<<"\n"; cout<<"\nsecante : "<<1/cos(rang)<<"\n"; cout<<"\nco-tangente: "<<1/tan(rang)<<"\n\n"; system("pause"); }

29

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
No exemplo apareceu M_PI. significa isso? anterior, O que

2006
Percebo que voc est comeando a se preocupar com detalhes que simplificam nossos programas. Muitas linguagens de programao disponibilizam a constante PI como nomes diferentes. Infelizmente, no. Sugiro que voc, nesses casos, defina sua constante PI cujo valor : 3.14159265358979323846

Essa constante usada em compilador?

pode ser qualquer

11.

Equao do 2o grau - frmula de Baskara

Seja a equao:

ax 2 + bx + c = 0

com a 0 .

A frmula de Baskara garante que suas razes podem ser calculadas atravs das frmulas abaixo desde que

0 e sendo

A nica restrio que o coeficiente a no seja 0, pois no seria uma equao do 2o grau. Dependendo do valor de , podemos concluir que:

> 0: obteremos duas razes reais = 0: obteremos uma raiz igual a 0 e a outra, real < 0: obteremos duas razes complexas
Agora vou lhe dar razo. O conjunto dos complexos foi retirado do ensino mdio, mas no se preocupe, pois s fazer o teste com .

Complexas! O que significa isso?

30

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
#include <iostream> #include <cmath> using namespace std; int main() { float a, b, c, X1, X2, delta; cout<<"\n a: "; cin>>a; cout<<"\n b: "; cin>>b; cout<<"\n c: "; cin>>c; delta = b*b - 4*a*c; if(delta >= 0) { X1 = (-b+sqrt(delta))/(2*a); X2 = (-b-sqrt(delta))/(2*a); cout<<"\nX1= "<<X1<<"\n\n"; cout<<"\nX2= "<<X2<<"\n\n"; } else cout<<"\nA equacao nao possui raizes no conjunto dos reais\n\n"; system("pause"); }

2006

12

Progresso Aritmtica(PA) e Progresso Geomtrica(PG)


PA uma seqncia de nmeros cujos termos crescem com uma razo constante, podendo ser crescente ou decrescente(soma-se, ou subtrai-se, a razo). Frmula do termo geral da PA:

an = a1 + (n 1)r .
( a1 + an ).n 2

Soma dos termos de uma PA : Sn =

PG uma seqncia de nmeros cujos termos crescem com uma razo constante, podendo ser crescente ou decrescente (multiplica-se, ou dividi-se, a razo).
31

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
Frmula do termo geral da PG: Soma dos termos de uma PG :

2006

an = a1 . qn 1 .
a1 (qn 1) Sn = q 1
Com certeza. Voc est ficando cada vez melhor!

.
Esse conceito de sries igual a dos parmetros da estrutura do for. Aplicao. #include <iostream> #include <cmath> using namespace std; int main() { int x, somaPA=0,somaPG=0; float SPA,SPG; cout<<"\nPA - decrescente\n"; for(x=10; x>=1; x--) { cout<<x<<"\t"; somaPA+=x; } cout<<"\n\n";

cout<<"\nPG - crescente\n"; for(x=3; x<=20000; x*=3) { cout<<x<<"\t"; somaPG+=x; } cout<<"\n\n"; SPA=((10+1)*10)/2; SPG=(3*(pow(3.,9.)-1))/(3-1); cout<<"\nPA\tPG\n"; cout<<"\nUsando acumulaor\n"; cout<<"\n"<<somaPA<<"\t"<<somaPG; cout<<"\nUsando a formula\n"; cout<<"\n"<<SPA<<"\t"<<SPG; cout<<"\n\n"; system("pause"); }

32

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
13.

2006

Fatorial
O fatorial de um nmero n, sendo n 0, o produto de todos inteiros positivos desde um at o nmero, sabendo-se que o fatorial de 0 e de 1 igual a 1. Sua representao na matemtica : o nmero seguido do ponto de exclamao. Exemplo: fatorial de seis: 6! . #include <iostream> using namespace std; int main() { int x, num,fatorial; cout<<"\nNumero: "; cin>>num; fatorial=1; for(x=1; x<=num; x++) fatorial *=x; cout<<"\nFatorial: "<< fatorial; cout<<"\n\n"; system("pause"); }

14.

Arranjo e Combinao
Arranjos so agrupamentos de p elementos onde p < n, sendo n o nmero total de elementos. Sua representao :
n Ap

, lendo-se: Arranjo de n, p a p.

Podem ser com repetio ou sem repetio (simples).

Arranjos so gerados com estruturas de repetio aninhadas (Exemplo: for dentro de for para arranjos 2 a 2). Um exemplo de Arranjo com repetio a gerao das 10 tabuadas de multiplicar.
33

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
#include <iostream> using namespace std; int main() { int x, y; for(x=1; x<=10; x++) { cout<<"\nTabuada do "<<x; for(y=1; y<=10; y++) cout<<"\n"<<x<<" x "<<y<<" = "<<x*y; cin.get(); } cout<<"\n\n"; system("pause"); }

2006

Um exemplo de Arranjo sem repetio a gerao de uma tabela para um torneio de dois turnos no futebol, i., cada time joga com outro duas vezes. #include <iostream> using namespace std; int main() { int x, y; cout<<"\nArranjos Simples 2 a 2\n"; for(x=1; x<=10; x++) { for(y=1; y<=10; y++) if(x!=y) cout<<x<<" - "<<y<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }

34

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Combinaes so agrupamentos de p elementos onde p < n, sendo n o nmero total de elementos e os agrupamentos so distintos, isto , a ordem no importa(exemplo: ab e ba so iguais). Sua representao :
n Cp

, lendo-se: Combinao de n, p a p.

Um exemplo de combinao a gerao de uma tabela para um torneio de um turno no futebol, i., cada time joga com outro uma vez. Nesse exemplo, a metade do arranjo simples #include <iostream> using namespace std; int main() { int x, y; cout<<"\nCombinacao 2 a 2\n"; for(x=1; x<=10; x++) { for(y=1; y<=10; y++) if(x<y) cout<<x<<" - "<<y<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }

35

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

O jogo do domin uma combinao de sete(0 at 6), 2 a 2, mais a diagonal principal.

//1a solucao #include <iostream> using namespace std; int main() { int x,y; //gera os iguais for(x=0; x<=6; x++) cout<<x<<"-"<<x<<"\t"; cout<<"\n"; //combinacao de 7, 2 a 2/ for(x=0; x<=5; x++) { for( y= x+1; y<=6; y++) cout<<x<<"-"<<y<<"\t";
36

//2a solucao #include <iostream> using namespace std; int main() { int x,y; for(x=0; x<=6; x++) { for(y=0; y<=6; y++) if( x<=y ) cout<<x<<"-"<<y<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
cout<<"\n"; } cout<<"\n\n"; system("pause"); }

2006

14.

lgebra das Matrizes


O domnio desse contedo fundamental para programao e, por essa razo, vamos explorar um pouco mais o assunto. Matriz um arranjo de elementos dispostos em linhas e colunas. Na matemtica, normalmente, nmeros reais, mas, na Programao, podero ser nmeros inteiros/reais e caracter. A matriz tem um nome que uma letra maiscula. E, de forma subscrita, sua dimenso(linhas e colunas) separadas pela letra x minsucla. Os elementos se apresentam entre um par de colchetes, ou de parnteses, e cada elemento representado pela letra minscula correspondente ao nome da matriz e sua posio linha/coluna.

Amxn

a11 a12 a13 . a1n Sendo assim, podemos dizer que: a a a . a A numerao das linhas varia de 1 at m crescendo de 1 22 23 21 2n = em 1. . . . . . A numerao das colunas varia de 1 at n crescendo de am1 am2 am3 . amn
1 em 1.

Nossa! O que aconteceu? J comeo a ver um sorriso e sua sobrancelha est menos arqueada.

De repente, deu um estalo e j estou juntando todas as peas de um quebra-cabea.Estou vendo um for dentro do for para representar as linhas e as colunas. Perfeito, mas teremos que fazer adaptaes para algumas linguagens. Na linguagem C++, a numerao das linhas /colunas comea com 0.Veja a nota abaixo.

Percebo que o programa que gerou todos os arranjos de 1 at 10, com repetio, servir para as matrizes bidimensionais.
37

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

A4 x 4

a00 a01 a02 a03 Sendo assim, podemos dizer que: A numerao das linhas varia de 0 at m-1 a a a a 10 11 12 1,3 = crescendo de 1 em 1. a20 a21 a22 a23 A numerao das colunas varia de 0 at n -1 a30 a31 a32 a33 crescendo de 1 em 1.

Para que possamos ficar mais prximos da programao, passaremos a usar a mesma numerao linha/coluna da linguagem C++. A matriz pode ter tambm s uma dimenso como poder ser observado nas figuras abaixo:

A1x 4 = [2 3 1 13]
2 3 = 1 13

Matriz linha ou vetor linha

A4 x1

Matriz coluna ou vetor coluna

Matriz quadrada uma matriz onde o nmero de linhas igual ao nmero de colunas.

A4 x 4

a00 a01 a02 a03 a a a a 10 11 12 1,3 = a20 a21 a22 a23 a30 a31 a32 a33

Matriz unidade ou identidade uma matriz de ordem n, isto , uma matriz quadrada onde os elementos da diagonal principal so iguais a 1 e os demais, iguais a 0.

1 0 0 0 0 1 0 0 I= 0 0 1 0 0 0 0 1

38

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Fazendo uma pequena modificao no programa arranjoSemRepeticao(arranjo simples), obteremos uma sada diferente. Isto lhe lembra o qu? Aplicao: Exiba todas as posies da matriz de ordem 4. #include <iostream> using namespace std; int main() { int x, y; cout<<"\n"; for(x=0; x<4; x++) { for(y=0; y<4; y++) cout<<x<<","<<y<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); } Aplicao: Exiba todas as posies da matriz de ordem 4 que esto na DP. #include <iostream> using namespace std; int main() { int x, y; cout<<"\n"; for(x=0; x<4; x++) { for(y=0; y<4; y++) if(x==y) cout<<x<<","<<y<<"\t"; else cout<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }

39

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Aplicao: Exiba todas as posies da matriz de ordem 4 que esto fora da DP. #include <iostream> using namespace std; int main() { int x, y; cout<<"\n"; for(x=0; x<4; x++) { for(y=0; y<4; y++) if(x!=y) cout<<x<<","<<y<<"\t"; else cout<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }

Aplicao: Exiba todas as posies da matriz de ordem 4 que esto no tringulo superior da DP. #include <iostream> using namespace std; int main() { int x, y; cout<<"\n"; for(x=0; x<4; x++) { for(y=0; y<4; y++) if(x<y) cout<<x<<","<<y<<"\t"; else cout<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }
40

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

Aplicao: Exiba todas as posies da matriz de ordem 4 que esto no tringulo inferior da DP. #include <iostream> using namespace std; int main() { int x, y; cout<<"\n"; for(x=0; x<4; x++) { for(y=0; y<4; y++) if(x>y) cout<<x<<","<<y<<"\t"; else cout<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }

Matriz transposta Dada uma Matriz Am,n, dizemos que AT se o nmero de linhas dela for igual ao nmero de colunas de A e se o nmero de colunas dela for igual ao nmero de linhas de A logo, a transposta de A e ser da seguinte ordem: An,m.

a00 a01 a02 A2x3 = a10 a11 a12

A3,2

a00 a01 = a10 a11 a20 a21

Aplicao: Entrar com valores para uma matriz de ordem 2 x 3. Gerar e exibir a transposta. #include <iostream> using namespace std; int main() { int x,y;float a[2][3], at[3][2]; for(x=0; x<2; x++) for(y=0; y<3; y++) { cout<<"Entrar com elemento linha" <<x+1 <<" coluna " <<y+1<<": "; cin>>a[x][y]; at[y][x]=a[x][y];
41

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
} // saida cout<<"\nMatriz a\n"; for(x=0; x<2; x++) { for(y=0; y<3; y++) cout<<a[x][y]<<"\t"; cout<<"\n"; } cout<<"\nMatriz Transposta de a\n"; for(x=0; x<3; x++) { for(y=0; y<2; y++) cout<<at[x][y]<<"\t"; cout<<"\n"; } cout<<"\n\n"; system("pause"); }

2006

Realmente, tenho que admitir que a lgebra das Matrizes muito fascinante, Operaes com matrizes

Calma. Voc ainda no viu nada.

Soma de duas matrizes colunas


#include <iostream> using namespace std; int main() { int x; float A[3], B[3], SOMA[3]; //Entrada de A for(x=0; x<3; x++) { cout<<"Entrar com elemento da matriz A "<<x+1 <<"a coluna: "; cin>>A[x]; } //Entrada de B
42

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
for(x=0; x<3; x++) { cout<<"Entrar com elemento da matriz B "<<x+1<<"a coluna: "; cin>>B[x]; } //Gera a matriz Soma for(x=0; x<3; x++) SOMA[x]=A[x] + B[x]; // saida cout<<"\nA\tB\tSOMA\n"; for(x=0; x<3; x++) cout<<"\n"<<A[x]<<"\t"<<B[x]<<"\t"<<SO MA[x]; cout<<"\n\n"; system("pause"); }

2006

Subtrao de duas matrizes colunas


#include <iostream> using namespace std; int main() { int x; float A[3], B[3], DIF[3]; //Entrada de A for(x=0; x<3; x++) { cout<<"Entrar com elemento da matriz A "<<x+1<<"a coluna: "; cin>>A[x]; } //Entrada de B for(x=0; x<3; x++) { cout<<"Entrar com elemento da matriz B "<<x+1<<"a coluna: "; cin>>B[x]; } //Gera a matriz Diferenca for(x=0; x<3; x++) DIF[x]=A[x] - B[x]; // saida
43

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
cout<<"\nA\tB\tDiferenca\n"; for(x=0; x<3; x++) cout<<"\n"<<A[x]<<"\t"<<B[x]<<"\t"<<DI F[x]; cout<<"\n\n"; system("pause"); }

2006

Multiplicao de uma matriz bidimensional por uma escalar.


Aplicao. Dada uma matriz A2 x 3, gerar a matriz triplo e exibi-la. #include <iostream> using namespace std; int main() { int x,y; float A[2][3], MultEscalar[2][3]; //Entrada de A e geracao da matriz triplo for(x=0; x<2; x++) for(y=0;y<3;y++) { cout<<"Entrar com elemento da matriz A "<<x+1<<"a coluna: "; cin>>A[x][y]; MultEscalar[x][y]=A[x][y] * 3; } // saida cout<<"\nMatriz A\n"; for(x=0; x<2; x++) { for(y=0;y<3;y++) cout<<A[x][y]<<"\t"; cout<<"\n"; } cout<<"\nMatriz Triplo\n"; for(x=0; x<2; x++) { for(y=0;y<3;y++) cout<<MultEscalar[x][y]<<"\t"; cout<<"\n"; }
44

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
cout<<"\n\n"; system("pause"); }

2006

Multiplicao de duas matrizes


O que isso? Voltou com aquela cara carrancuda? Desculpe-me, mas sempre achei esse tpico muito difcil,

Para que possamos multiplicar duas matrizes, o nmero de colunas da primeira tem que ser igual ao nmero de linhas da segunda. A multiplicao de matrizes de maior importncia em vrios aplicativos. Aplicao: Uma bordadeira cearense trabalha com trs tipos de bordados em toalhas: renascena, richelieu e rendend. Faa um programa que armazene a produo mensal dos meses de outubro, novembro e dezembro em uma matriz e o preo de custo e o lucro de cada tipo de toalha em outra matriz. Calcule e exiba o custo total por ms e o lucro total por ms da bordadeira. Ao final, o lucro total. Tipos de bordados Custo/Lucro Renascena Richelieu Rendend Custo Lucro out 6 20 20 Renascena 150 80 nov 5 10 30 Richelieu 135 65 dez 12 15 40 Rendend 95 55 #include <iostream> using namespace std; int main() { char bordado[][20]={"Rensacenca", "Richelieu", "Rendende"}; float custoLucro[3][2], Resultado[3][2], soma; int qtdade[3][3],L,c,m; cout<< "\nProducao das toalhas\n"; for(L = 0; L<3; L++) for(c = 0; c<3; c++) { cout<< "\ndigite numero de toalhas no mes "<<L+1<< " do tipo "<<bordado[c]<<": "; cin>>qtdade[L][c]; } for(L = 0; L<3; L++) {
45

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
cout<<"\ndigite custo da toalha de "<<bordado[L]<< ": "; cin>>custoLucro[L][0]; cout<<"\ndigite lucro da toalha de "<<bordado[L]<< ": "; cin>>custoLucro[L][1]; } for(L = 0; L<3; L++) for(c = 0; c<2; c++) { Resultado[L][c] =0; for(m = 0; m<3; m++) Resultado[L][c] +=qtdade[L][m] * custoLucro[m][c]; } cout<<"\n\nCUSTO\tLUCRO\n\n"; for(L = 0; L<3; L++) { for(c = 0; c<2; c++) cout<<Resultado[L][c]<< "\t"; cout<<"\n\n"; } soma= 0; for(L = 0; L<3; L++) soma += Resultado[L][1]; cout<<"\n\nLucro anual: "<< soma; cout<<"\n"; cout<<"\n\n"; system("pause"); }

2006

46

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes 2006

47

Matemtica && Programao uma parceria perfeita


Autora: Anita Lopes
BIBLIOGRAFIA FARRER, H., BECKER, C. G., FARIA, E. C. et Rio de Janeiro: LTC, 1998. al.

2006

Algoritmos estruturados. 2. ed.

GIOVANNI,J.R., BONJORNO, J.R. Matemtica 2o grau. vol.1/vol.2/vol.3.So Paulo:FTD. GROSSI, E. ensina quem aprende. In: GROSSI , E. P., BORDIN, J. (org.). Paixo de aprender.5. ed. Petrpolis: Vozes, 1992a. p. 69-75. S

GUIMARES, A. de M., LAJES, N. A. de C. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1985. IEZZI, G., DOLCE, O., MACHADO, A. Matemtica e realidade-5a srie/6a srie/7a srie/ 8a srie. Rio de Janeiro:Atual.1997. LOPES, Anita, GARCIA, Guto. Introduo Programao - 500 Algoritmos. 6a ed. Rio de Janeiro: Campus, 2002. MANZANO, J. A. N. G., OLIVEIRA J. F. Algoritmos. de programao. So Paulo: Erica, 1996.

Lgica

para

desenvolvimento

SALVETTI, D. D., BARBOSA L. M.. Algoritmos. So Paulo: Makron Books, 1998. SOUZA, J.C.de M. (Malba Tahan). Matemtica divertida e curiosa. 15a ed. Rio de Janeiro: Record, 2001. STEINBRUCH, A. Matrizes, determinantes e sistemas de equaes lineares. So Paulo: McGraw-Hill,1989. TREMBLAY,J.P., BUNT, R.B. Cincia dos computadores: uma abordagem algortmica. So Paulo: Mc Graw Hill do Brasil, 1983. VILLAS, M.V., VILLASBOAS, L. F. P. Rio de Janeiro Campus, 1997.

Programao:

conceitos, tcnicas e

linguagens.

48

You might also like