escola de engenharia c++ programação estruturada
TRANSCRIPT
![Page 1: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/1.jpg)
ESCOLA DE ENGENHARIA
C++Programação Estruturada
![Page 2: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/2.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 2/57
Brian Kernighan (1976)Brian Kernighan (1976) “Nossa experiência mostra que a legibilidade é o
único e o melhor critério para a qualidade de um programa: se um programa é fácil de ler, ele é provavelmente um bom programa; se ele é difícil de ler, provavelmente ele não é bom. "
início
m = (a + b + c) / 3
fim
"Entre comtrês valores
reais...'
a, b, c
"Média: ", m
Funciona, porém Funciona, porém está está ilegívelilegível!!
Funciona, porém Funciona, porém está está ilegívelilegível!!
Não é bomNão é bom!!Não é bomNão é bom!!
![Page 3: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/3.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 3/57
Brian Kernighan (1976)Brian Kernighan (1976)início
m = (a + b + c) / 3
fim
"Entre comtrês valores
reais..."
a, b, c
"Média: ", m Funciona e está Funciona e está legívellegível!!
Funciona e está Funciona e está legívellegível!!
Se um programa é fácil de ler, ele é provavelmente um bom programa.
Se um programa é fácil de ler, ele é provavelmente um bom programa.
![Page 4: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/4.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 4/57
Funciona e está Funciona e está legívellegível!!
Funciona e está Funciona e está legívellegível!!
Funciona, porém Funciona, porém está está ilegívelilegível!!
Funciona, porém Funciona, porém está está ilegívelilegível!!
Brian Kernighan (1976)Brian Kernighan (1976)int main(int argc, char *argv[]){float a,b,c;cout<< Entre com três valores reais...”<<endl;cin>>a>>b>>c;float m=(a+b+c)/2;cout<<“Média: ”<<m<<endl;return 0;}
int main(int argc, char *argv[]){float a,b,c;cout<< Entre com três valores reais...”<<endl;cin>>a>>b>>c;float m=(a+b+c)/2;cout<<“Média: ”<<m<<endl;return 0;}
int main(int argc, char *argv[]){ float a, b, c; cout << Entre com três valores reais...” << endl; cin >> a >> b >> c; float m = (a + b + c) / 2; cout << “Média: ” << m << endl; return 0;}
int main(int argc, char *argv[]){ float a, b, c; cout << Entre com três valores reais...” << endl; cin >> a >> b >> c; float m = (a + b + c) / 2; cout << “Média: ” << m << endl; return 0;}
![Page 5: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/5.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 5/57
Descrição de AlgoritmosDescrição de Algoritmos Narrativa: é o algoritmo descrito com o uso da linguagem
natural. A linguagem natural é abstrata, imprecisa e freqüentemente pouco confiável. Isto pode ser observado por pessoas que tentam redigir um contrato ou um documento legal;
Fluxograma: é o algoritmo descrito com o uso de símbolos geométricos (retângulos, losangos, etc.) enfatizando seus passos individuais e suas interconexões;
Linguagem Algorítmica: é o algoritmo descrito com o uso da combinação entre a Narrativa e o Fluxograma, extraindo suas melhores características. É similar a várias linguagens de programação como, por exemplo, Object Pascal, C++, etc.
![Page 6: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/6.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 6/57
ISO 5807: Dados e ProcessosISO 5807: Dados e Processos
Escreva otexto aqui!
TerminaçãoTerminaçãoTerminaçãoTerminação
Entrada deEntrada de DadosEntrada deEntrada de Dados
Saída deSaída de DadosSaída deSaída de Dados
ProcessoProcessoProcessoProcesso
ProcessoProcesso de Decisãode DecisãoProcessoProcesso de Decisãode Decisão
ConectorConectorConectorConector
FluxoFluxoFluxoFluxo
AnotaçãoAnotaçãoAnotaçãoAnotação
passivopassivo: sofre ação: sofre açãopassivopassivo: sofre ação: sofre ação
ativoativo: executa ação: executa açãoativoativo: executa ação: executa ação
![Page 7: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/7.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 7/57
Böhn e Jacopini (1966)Böhn e Jacopini (1966)
• as estruturas têm um papel fundamental quando desejamos descrever um algoritmo que seja computável, isto é, implementável em um computador;
• Böhm e Jacopini demonstraram em 1966 que qualquer programa de computador pode ser decomposto através de três tipos de estruturas de programação:
1) estrutura seqüencial;2) estrutura condicional;3) estrutura repetitiva;
• estas estruturas também podem estar embutidas umas nas outras, por exemplo, uma estrutura repetitiva pode repetir uma seqüência onde um dos comandos desta seqüência seja uma estrutura condicional que por sua vez condiciona uma outra seqüência, etc.
![Page 8: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/8.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 8/57
Sete Peças Básicas no C++:Sete Peças Básicas no C++:
............
1111 seqüencial ;seqüencial ;seqüencial ;seqüencial ; 2222
truetruetruetrue
falsefalsefalsefalse
condicional ifcondicional ifcondicional ifcondicional if 4444
............v1v1v1v1 v2v2v2v2 vnvnvnvn
defaultdefaultdefaultdefault
condicional switchcondicional switchcondicional switchcondicional switch
3333
truetruetruetrue
falsefalsefalsefalse
condicional if/elsecondicional if/elsecondicional if/elsecondicional if/else
5555
falsefalsefalsefalse
truetruetruetrue
repetitiva forrepetitiva forrepetitiva forrepetitiva for
6666
falsefalsefalsefalse
truetruetruetrue
repetitiva whilerepetitiva whilerepetitiva whilerepetitiva while
7777
truetruetruetrue falsefalsefalsefalse
repetitiva do/whilerepetitiva do/whilerepetitiva do/whilerepetitiva do/while
![Page 9: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/9.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 9/57
Sete Peças Básicas no C++Sete Peças Básicas no C++
RA a b
retânguloretânguloretânguloretângulo
aaaa
bbbb"a e b?..."
a, b
Ar = a * b
"Área: ", Ar
Variáveis reais.
Área do Retânguloinício
fim
int main(int argc, char *argv[]){ double a, b, Ar; cout << “a e b?...” << endl; cin >> a >> b; Ar = a * b; cout << “Área: ” << Ar << endl; return 0;}
int main(int argc, char *argv[]){ double a, b, Ar; cout << “a e b?...” << endl; cin >> a >> b; Ar = a * b; cout << “Área: ” << Ar << endl; return 0;}eme
m C
++
C+
+eme
m C
++
C+
+
............
1111 seqüencial ;seqüencial ;seqüencial ;seqüencial ;
![Page 10: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/10.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 10/57
Sete Peças Básicas no C++Sete Peças Básicas no C++
comando simples: comando simples: seqüênciaseqüência de um de um único comando.único comando.
comando simples: comando simples: seqüênciaseqüência de um de um único comando.único comando.
palavras reservadas palavras reservadas em vermelhoem vermelho
palavras reservadas palavras reservadas em vermelhoem vermelho
truetrue
falsefalse
if( <condição> ) <comando> ;if( <condição> ) <comando> ;
2222
truetruetruetrue
falsefalsefalsefalse
condicional ifcondicional ifcondicional ifcondicional if
parênteses parênteses obrigatóriosobrigatóriosparênteses parênteses obrigatóriosobrigatórios
![Page 11: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/11.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 11/57
Sete Peças Básicas no C++Sete Peças Básicas no C++
comando composto: comando composto: seqüênciaseqüência de dois de dois
ou mais comandos.ou mais comandos.
comando composto: comando composto: seqüênciaseqüência de dois de dois
ou mais comandos.ou mais comandos.
falsefalse
truetrue
if( <condição> ){
<comando 1>; <comando 2>; ... <comando n>;}
if( <condição> ){
<comando 1>; <comando 2>; ... <comando n>;}
2222
truetruetruetrue
falsefalsefalsefalse
condicional ifcondicional ifcondicional ifcondicional if
indentação com 2 indentação com 2 espaçosespaços
(legibilidade)(legibilidade)
indentação com 2 indentação com 2 espaçosespaços
(legibilidade)(legibilidade)
;;
Aqui não tem Aqui não tem ponto e vírgula!ponto e vírgula!
Aqui não tem Aqui não tem ponto e vírgula!ponto e vírgula!
![Page 12: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/12.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 12/57
Sete Peças Básicas no C++Sete Peças Básicas no C++comando comando simplessimples
comando comando simplessimples
comando comando simplessimples
comando comando simplessimples
truetrue
falsefalse
Uma possível forma Uma possível forma de indentar de indentar
(Kernighan & Ritchie).(Kernighan & Ritchie).
Uma possível forma Uma possível forma de indentar de indentar
(Kernighan & Ritchie).(Kernighan & Ritchie).
if( <condição> ) <comandoT> ;
else <comandoF> ;
if( <condição> ) <comandoT> ;
else <comandoF> ;
3333
truetruetruetrue
falsefalsefalsefalse
condicional if/elsecondicional if/elsecondicional if/elsecondicional if/else
![Page 13: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/13.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 13/57
Sete Peças Básicas no C++Sete Peças Básicas no C++
;;
comando comando compostocompostocomando comando compostocomposto
comando comando compostocompostocomando comando compostocomposto
truetrue
falsefalse
Uma possível Uma possível forma de indentar forma de indentar
(Kernighan & (Kernighan & Ritchie).Ritchie).
Uma possível Uma possível forma de indentar forma de indentar
(Kernighan & (Kernighan & Ritchie).Ritchie).
if( <condição> ){
<comandoT 1>; <comandoT 2>; ... <comandoT n>;}else{ <comandoF 1>; <comandoF 2>; ... <comandoF m>;}
if( <condição> ){
<comandoT 1>; <comandoT 2>; ... <comandoT n>;}else{ <comandoF 1>; <comandoF 2>; ... <comandoF m>;}
3333
truetruetruetrue
falsefalsefalsefalse
condicional if/elsecondicional if/elsecondicional if/elsecondicional if/else
;;Aqui não tem Aqui não tem
ponto e vírgula!ponto e vírgula!Aqui não tem Aqui não tem
ponto e vírgula!ponto e vírgula!
Aqui não tem Aqui não tem ponto e vírgula!ponto e vírgula!
Aqui não tem Aqui não tem ponto e vírgula!ponto e vírgula!
![Page 14: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/14.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 14/57
estruturaestruturaseqüencialseqüencialestruturaestrutura
seqüencialseqüencial
Exercício 01: Exercício 01: elabore um fluxograma para determinar o maior valor entre três valores reais.
início
aqui começa a determinação domaior, comparando-os dois a dois.
criar reaisa, b, c, maior
Aqui são criadas as variáveis reaisa, b, c, maior (normalmente ested e t a l h e é o m i t i d o n o sfluxogramas).
a ,b, c
1
![Page 15: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/15.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 15/57
Exercício 01: Exercício 01: continuação.continuação.
estruturaestruturacondicionalcondicional
estruturaestruturacondicionalcondicional
estruturaestruturacondicionalcondicional
embutidaembutida
estruturaestruturacondicionalcondicional
embutidaembutida
estruturaestruturacondicionalcondicional
embutidaembutida
estruturaestruturacondicionalcondicional
embutidaembutida
a > b a > c maior = a
maior = c
b > c
true true
false
maior = b
maior = c
false
false
true
1
2
![Page 16: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/16.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 16/57
estruturaestruturaseqüencialseqüencialestruturaestrutura
seqüencialseqüencial
Exercício 01: Exercício 01: continuação.continuação.
destruir reaisa, b, c, maior
fim
Aqui são destruidas as variáveisreais a, b, c, maior (normalmenteeste deta lhe é omit ido nosfluxogramas).
escrevermaior
1
![Page 17: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/17.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 17/57
a > b a > c maior = a
maior = c
b > c
true true
false
maior = b
maior = c
false
false
true
1
2
Exercício 02: Exercício 02: teste o exercício 01 para os teste o exercício 01 para os valores abaixo. Determine o maior e também o valores abaixo. Determine o maior e também o caminho seguido no fluxo. Veja como exemplo o caminho seguido no fluxo. Veja como exemplo o teste 1.teste 1.
TesteTeste aa bb cc maiomaiorr
caminhocaminho
11 6969 2211
77 6969 true, truetrue, true
22 2121 6699
77
33 2121 77 6699
44 77 2211
6699
55 77 77 77
69696969
69696969
69696969
7777
false, truefalse, truefalse, truefalse, true
true, falsetrue, falsetrue, falsetrue, false
false, falsefalse, falsefalse, falsefalse, false
false, falsefalse, falsefalse, falsefalse, false
![Page 18: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/18.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 18/57
Exercício 03: Exercício 03: elabore um fluxograma para determinar o menor valor entre quatro valores reais.
c < menor menor = c
false
fim
true
d < menor menor = d
false
true
"Menor: ",menor
1
início
menor = a
a, b, c, d Admitir que umdeles é o menor.
b < menor menor = btrue
false
Compararindividualmentecom os outros.
1
![Page 19: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/19.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 19/57
A criação de variáveis foi A criação de variáveis foi omitida no fluxograma!omitida no fluxograma!
A criação de variáveis foi A criação de variáveis foi omitida no fluxograma!omitida no fluxograma!
Exercício 04: Exercício 04: converta o exercício anterior (03) em um programa C++.
menor = a
Admitir que um deles é o menor.
início
a, b, c, d
b < menor menor = btrue
false
Comparar individualmente com os outros.
1
cin >> a >> b >> c >> d;cin >> a >> b >> c >> d;
// Admitir que um deles// é o menor.menor = a;
// Admitir que um deles// é o menor.menor = a;
/* Comparar individualmente com os outros. */if(b < menor) menor = b;
/* Comparar individualmente com os outros. */if(b < menor) menor = b;
comentário comentário de linha //de linha //
comentário comentário de linha //de linha //
comentário de comentário de bloco /* */bloco /* */
comentário de comentário de bloco /* */bloco /* */
int main(int argc, char *argv[]){ double a, b, c, d, menor;
int main(int argc, char *argv[]){ double a, b, c, d, menor;
![Page 20: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/20.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 20/57
Exercício 04: Exercício 04: continuação.
c < menor menor = c
false
true
1 int main(int argc, char *argv[]){ double a, b, c, d, menor; cin >> a >> b >> c >> d; // Admitir que um deles // é o menor menor = a; /* Comparar individualmente com os outros. */ if(b < menor) menor = b;
int main(int argc, char *argv[]){ double a, b, c, d, menor; cin >> a >> b >> c >> d; // Admitir que um deles // é o menor menor = a; /* Comparar individualmente com os outros. */ if(b < menor) menor = b;
d < menor menor = d
false
true
fim
'Menor:',menor
if(c < menor) menor = c; if(c < menor) menor = c;
if(d < menor) menor = d; if(d < menor) menor = d;
cout << “Menor: “ << menor << endl; return 0;}
cout << “Menor: “ << menor << endl; return 0;}
![Page 21: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/21.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 21/57
Aninhamento ouAninhamento ouEmbutimento.Embutimento.Aninhamento ouAninhamento ouEmbutimento.Embutimento.
seqüencialseqüencial
condicionalcondicional
Exercício 05: Exercício 05: converta o programa C+converta o programa C++ abaixo em um fluxograma e determine o + abaixo em um fluxograma e determine o que será exibido.que será exibido.
seqüencialseqüencial
int main(int argc, char *argv[]){ double Nota1; cout << “Nota 1: ”; cin >> Nota1; double Nota2; cout << “Nota 2: “; cin >> Nota2; double Media = (Nota1 + Nota2) / 2.0; string Situacao; if(Media < 3.0){ Situacao = “Reprovado”; cout << “Media: “ << Media << endl; cout << “Situação: “ << Situacao << endl; }
int main(int argc, char *argv[]){ double Nota1; cout << “Nota 1: ”; cin >> Nota1; double Nota2; cout << “Nota 2: “; cin >> Nota2; double Media = (Nota1 + Nota2) / 2.0; string Situacao; if(Media < 3.0){ Situacao = “Reprovado”; cout << “Media: “ << Media << endl; cout << “Situação: “ << Situacao << endl; }
![Page 22: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/22.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 22/57
Aninhamento ou Aninhamento ou embutimento.embutimento.
Aninhamento ou Aninhamento ou embutimento.embutimento.Exercício 05: Exercício 05: continuação.continuação.
if(3.0 <= Media && Media < 6.0){ double Exame; cout << “Nota Exame: “ << endl; cin >> Exame; Media = (Media + Exame) / 2.0; if(Media < 6.0) Situacao = “Reprovado Exame”; else Situacao = “Aprovado Exame”; cout << “Media: “ << Media << endl; cout << “Situação: “ << Situacao << endl; } if(6.0 <= Media){ Situacao = “Aprovado”; cout << “Media: “ << Media << endl; cout << “Situação: “ << Situacao << endl; } return 0;}
if(3.0 <= Media && Media < 6.0){ double Exame; cout << “Nota Exame: “ << endl; cin >> Exame; Media = (Media + Exame) / 2.0; if(Media < 6.0) Situacao = “Reprovado Exame”; else Situacao = “Aprovado Exame”; cout << “Media: “ << Media << endl; cout << “Situação: “ << Situacao << endl; } if(6.0 <= Media){ Situacao = “Aprovado”; cout << “Media: “ << Media << endl; cout << “Situação: “ << Situacao << endl; } return 0;}
Seqüen-cial
Seqüen-cial
Condi-cionalCondi-cional
Condi-cionalCondi-cional
Seqüen-cial
Seqüen-cial
Seqüen-cial
Seqüen-cial
Condi-cionalCondi-cional
![Page 23: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/23.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 23/57
Exercício 06: Exercício 06: converta o programa C++ converta o programa C++ abaixo em um fluxograma e determine o que abaixo em um fluxograma e determine o que será exibido.será exibido.
int main(int argc, char *argv[]){ double A, B, C; cout << “Entre com os lados”; cout << “Lado A: “); cin >> A; cout << “Lado B: “); cin >> B; cout << “Lado C: “); cin >> C;
int main(int argc, char *argv[]){ double A, B, C; cout << “Entre com os lados”; cout << “Lado A: “); cin >> A; cout << “Lado B: “); cin >> B; cout << “Lado C: “); cin >> C;
11
22
33
44
55
66
77
88
Seq.Seq.
Ob
se
rve
os
nív
eis
da
nu
mer
aç
ão
!O
bs
erv
e o
s n
íve
is d
a n
um
era
çã
o!
![Page 24: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/24.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 24/57
Aninhamento ou Aninhamento ou embutimento.embutimento.
Aninhamento ou Aninhamento ou embutimento.embutimento.Exercício 06: Exercício 06: continuação.continuação.
if(A < B + C && B < A + C && C < A + B){ if(B > A){ double aux = B; B = A; A = aux; } if(C > A){ double aux = C; C = A; A = aux; } double QA = A * A; double QBC = B * B + C * C; if(QA > QBC) cout << “Obtusângulo” << endl; if(QA == QBC) cout “Retângulo” << endl; if(QA < QBC) cout << “Acutângulo” << endl; } return 0;}
if(A < B + C && B < A + C && C < A + B){ if(B > A){ double aux = B; B = A; A = aux; } if(C > A){ double aux = C; C = A; A = aux; } double QA = A * A; double QBC = B * B + C * C; if(QA > QBC) cout << “Obtusângulo” << endl; if(QA == QBC) cout “Retângulo” << endl; if(QA < QBC) cout << “Acutângulo” << endl; } return 0;}
99
1010
9.19.1
9.29.2
9.39.3
9.49.4
9.59.5
9.69.6
9.79.7
9.1.19.1.1
9.1.29.1.2
9.1.39.1.3
9.2.19.2.1
9.2.29.2.2
9.2.39.2.3
Seq.Seq.
Cond.Cond.
Seq.Seq.
Cond.Cond.
Cond.Cond.
Cond.Cond.
Cond.Cond.
Cond.Cond.
Seq.Seq.
Seq.Seq.
Ob
se
rve
os
nív
eis
da
nu
mer
aç
ão
!O
bs
erv
e o
s n
íve
is d
a n
um
era
çã
o!
![Page 25: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/25.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 25/57
Vamos usar o Vamos usar o else!else!
Vamos usar o Vamos usar o else!else!
Exercício 07: Exercício 07: utilize o “else” nos utilize o “else” nos últimos condicionais do exercício 06 últimos condicionais do exercício 06 (abaixo).(abaixo).
if(QA > QBC) cout << “Obtusângulo” << endl;if(QA == QBC) cout “Retângulo” << endl;if(QA < QBC) cout << “Acutângulo” << endl;
if(QA > QBC) cout << “Obtusângulo” << endl;if(QA == QBC) cout “Retângulo” << endl;if(QA < QBC) cout << “Acutângulo” << endl;
Melhorou ou Melhorou ou piorou?piorou?
Justifique.Justifique.
Melhorou ou Melhorou ou piorou?piorou?
Justifique.Justifique.
if(QA > QBC) cout << “Obtusângulo” << endl;else if(QA == QBC) cout “Retângulo” << endl;else cout << “Acutângulo” << endl;
if(QA > QBC) cout << “Obtusângulo” << endl;else if(QA == QBC) cout “Retângulo” << endl;else cout << “Acutângulo” << endl;
![Page 26: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/26.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 26/57
Exercício 08: Exercício 08: elabore um programa C++ para elabore um programa C++ para descobrir qual é a cor do ponto de coordenadas descobrir qual é a cor do ponto de coordenadas cartesianas x e y dadas.cartesianas x e y dadas.
4 4 2x y
yyyy
xxxx4444
4444
-4-4-4-4
-4-4-4-4
C++álgebra
de Boole
conjuntos
português
! não
&& e
|| ou
2 2( 4) ( 4) 4x y círculocírculocírculocírculo
( 8 0) ( 0) ( 0)y x x y triângulotriângulotriângulotriângulo
4 4 2x y
losangolosangolosangolosango
maximo( 4 , 4 ) 2x y quadradoquadradoquadradoquadrado
![Page 27: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/27.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 27/57
Exercício 08: Exercício 08: solução.solução.int main(int argc, char *argv[]){ cout << “Coordenadas x e y?...”; double x, y; cin >> x >> y; double a = abs(x – 4.0); double b = abs(y + 4.0); double maximo; if(a > b) maximo = a; else maximo = b;
int main(int argc, char *argv[]){ cout << “Coordenadas x e y?...”; double x, y; cin >> x >> y; double a = abs(x – 4.0); double b = abs(y + 4.0); double maximo; if(a > b) maximo = a; else maximo = b; if(maximo <= 2.0 || a + abs(y – 4.0) <= 2.0) cout << “Azul” << endl; else{
if(maximo <= 2.0 || a + abs(y – 4.0) <= 2.0) cout << “Azul” << endl; else{ double a = x + 4.0; double b = y – 4.0; double q = a * a + b * b; double r = y – x – 8.0;
double a = x + 4.0; double b = y – 4.0; double q = a * a + b * b; double r = y – x – 8.0; if(q <= 4.0 && r > 0.0) cout << “Amarelo” << endl; if(q <= 4.0 && r > 0.0) cout << “Amarelo” << endl; else if(q <= 4.0 && r <= 0.0) cout << “Vermelho” << endl; else if(q <= 4.0 && r <= 0.0) cout << “Vermelho” << endl; else if(r <= 0.0 && x <= 0.0 && y >= 0.0) cout << “Verde” << endl; else if(r <= 0.0 && x <= 0.0 && y >= 0.0) cout << “Verde” << endl; else cout << “Branco” << endl; } return 0;}
else cout << “Branco” << endl; } return 0;}
![Page 28: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/28.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 28/57
Sete Peças BásicasSete Peças Básicas4444
............v1v1v1v1 v2v2v2v2 vnvnvnvn
defaultdefaultdefaultdefault
condicional switchcondicional switchcondicional switchcondicional switch
switch ( <exp.ord.> ){
<v1>: <comando v11>; ... <comando v1n>; break; <v2>: <comando v21>; ... <comando v2n>; break; ... <vn>: <comando vn1>; ... <comando vnn>; break; default: <comando v21>; ... <comando v2n>;}
switch ( <exp.ord.> ){
<v1>: <comando v11>; ... <comando v1n>; break; <v2>: <comando v21>; ... <comando v2n>; break; ... <vn>: <comando vn1>; ... <comando vnn>; break; default: <comando v21>; ... <comando v2n>;}
default default opcionalopcionaldefault default
opcionalopcional
v1v1
v2v2
vnvn
defaultdefault
![Page 29: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/29.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 29/57
Exercício 09: Exercício 09: elabore um fluxograma e seu elabore um fluxograma e seu correspondente programa C++ para calcular e exibir, correspondente programa C++ para calcular e exibir, baseado numa opção de entrada, a área de uma das baseado numa opção de entrada, a área de uma das figuras abaixo.figuras abaixo.
retânguloretânguloretânguloretângulo
aaaa
bbbb
RA a b elipseelipseelipseelipse
aaaa
bbbb
4E
a bA
triângulotriângulotriângulotriângulo
aaaa
bbbbcccc
( ) ( ) ( )TA s s a s b s c
2
a b cs
![Page 30: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/30.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 30/57
Exercício 09: Exercício 09: solução.solução.
início
"Opção? (1, 2ou 3)...'"
opcao
opcao 2
1
![Page 31: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/31.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 31/57
Exercício 09: Exercício 09: continuação.continuação.
"a e b?..."
a, b
Ar = a * b
"Área: ", Ar
Retângulo"a, b, c?..."
a, b, c
s = (a + b + c) / 2Ar = sqrt(s * (s - a) * (s - b) * (s - c))
"Área: ", Ar
Triângulo"a e b?..."
a, b
Ar = (M_PI * a * b) / 4
"Área: ", Ar
Elipse
"1, 2 ou 3!'"
1 2 3
fim
else
1
2
![Page 32: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/32.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 32/57
Exercício 09: Exercício 09: continuação.continuação.int main(int argc, char *argv[]){ int opcao; double a, b, c, s, Ar;
int main(int argc, char *argv[]){ int opcao; double a, b, c, s, Ar; cout << “Opção?(1, 2 ou 3)...”; cin >> opcao; cout << “Opção?(1, 2 ou 3)...”; cin >> opcao;switch(opcao){switch(opcao){ case 1: // Retângulo cout << “a e b?...”; cin >> a >> b; Ar = a * b; cout << “Área: “ << Ar << endl; break;
case 1: // Retângulo cout << “a e b?...”; cin >> a >> b; Ar = a * b; cout << “Área: “ << Ar << endl; break;
Dois espaços Dois espaços de de
indentação!indentação!
Dois espaços Dois espaços de de
indentação!indentação!
Mais dois Mais dois espaços de espaços de indentação!indentação!
Mais dois Mais dois espaços de espaços de indentação!indentação!
Outros dois Outros dois espaços de espaços de indentação!indentação!
Outros dois Outros dois espaços de espaços de indentação!indentação!
![Page 33: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/33.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 33/57
Exercício 09: Exercício 09: continuação.continuação.
case 2: // Triângulo cout << “a, b, c?...”; cin >> a >> b >> c; s = (a + b + c) / 2.0; Ar = sqrt(s * (s - a) (s – b) * (s – c)); cout << “Área: “ << Ar << endl; break;
case 2: // Triângulo cout << “a, b, c?...”; cin >> a >> b >> c; s = (a + b + c) / 2.0; Ar = sqrt(s * (s - a) (s – b) * (s – c)); cout << “Área: “ << Ar << endl; break;
![Page 34: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/34.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 34/57
Exercício 09: Exercício 09: continuação.continuação.
case 3: // Elipse cout << “a e b?...”; cin >> a >> b; Ar = M_PI * a * b / 4.0; cout << “Área: “ << Ar << endl; break; default cout << “1, 2 ou 3!” << endl; } // switch return 0;}
case 3: // Elipse cout << “a e b?...”; cin >> a >> b; Ar = M_PI * a * b / 4.0; cout << “Área: “ << Ar << endl; break; default cout << “1, 2 ou 3!” << endl; } // switch return 0;}
![Page 35: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/35.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 35/57
ch
amad
a
c
ham
ada
exe
cuçã
oex
ecu
ção
reto
rno
reto
rno
Funções: Definição e ChamadaFunções: Definição e Chamada
...<função>(<a1>, <a2>, ..., <an>);...
...<função>(<a1>, <a2>, ..., <an>);... Argumentos (a)
e Parâmetros (p): deve haver compatibilidade
de tipos.
Argumentos (a)e Parâmetros (p): deve haver compatibilidade
de tipos.
DefiniçãoDefinição
ChamadaChamada
compatíveiscompatíveis
...<tipo> <função>(<tipo1> <p1>, <tipo2> <p2>, ..., <tipon> <pn>){ // corpo da função: estruturas de controle e // chamadas de funções. ... return <expressão>;}...
...<tipo> <função>(<tipo1> <p1>, <tipo2> <p2>, ..., <tipon> <pn>){ // corpo da função: estruturas de controle e // chamadas de funções. ... return <expressão>;}...
![Page 36: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/36.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 36/57
Exercício 10: Exercício 10: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para calcular a área de um retângulo.seja a “main”, para calcular a área de um retângulo.
RA a b
retânguloretânguloretânguloretângulo
aaaa
bbbb
double ArRet(double a, double b)// Retorna a área de um retângulo// de lados a e b.{ double Ar = a * b; return Ar;}
double ArRet(double a, double b)// Retorna a área de um retângulo// de lados a e b.{ double Ar = a * b; return Ar;}
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
en
tra
da
en
tra
da
entradaentrada
sa
ída
sa
ída
Ar é do tipo double
Ar é do tipo double
return a * b;return a * b;
DefiniçãoDefinição
![Page 37: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/37.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 37/57
Exercício 11: Exercício 11: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para calcular a área de uma elipse.seja a “main”, para calcular a área de uma elipse.
double ArElp(double a, double b)// Retorna a área de uma elipse// de diâmetros a e b.{ double Ae = M_PI * a * b; return Ae;}
double ArElp(double a, double b)// Retorna a área de uma elipse// de diâmetros a e b.{ double Ae = M_PI * a * b; return Ae;}
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
sa
ída
sa
ída
Ae é do tipo double
Ae é do tipo double
elipseelipseelipseelipse
aaaa
bbbb
4E
a bA
en
tra
da
en
tra
da
entradaentrada
return M_PI * a * b;return M_PI * a * b;
DefiniçãoDefinição
![Page 38: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/38.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 38/57
Exercício 12: Exercício 12: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para calcular a área de um triângulo.seja a “main”, para calcular a área de um triângulo.
double ArTri(double a, double b, double c)// Retorna a área de um triângulo de// lados a, b e c.{ double s = (a + b + c) / 2.0; double At = sqrt(s*(s-a)*(s-b)*(s-c)); return At;}
double ArTri(double a, double b, double c)// Retorna a área de um triângulo de// lados a, b e c.{ double s = (a + b + c) / 2.0; double At = sqrt(s*(s-a)*(s-b)*(s-c)); return At;}
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
sa
ída
sa
ída At é do
tipo doubleAt é do
tipo double
en
tra
da
en
tra
da
triângulotriângulotriângulotriângulo
aaaa
bbbbcccc
( ) ( ) ( )TA s s a s b s c 2
a b cs
en
tra
da
en
tra
da
entr
ada
entr
ada
return sqrt(s*(s-a)*(s-b)*(s-c));return sqrt(s*(s-a)*(s-b)*(s-c));
en
tra
da
en
tra
da
DefiniçãoDefinição
![Page 39: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/39.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 39/57
Exercício 13: Exercício 13: elabore um programa C++ para elabore um programa C++ para calcular e exibir, baseado numa opção de entrada, a área calcular e exibir, baseado numa opção de entrada, a área de uma das figuras: 1) Retângulo; 2) Triângulo; 3) Elipse.de uma das figuras: 1) Retângulo; 2) Triângulo; 3) Elipse.
int main(int argc, char *argv[]){ int opcao; double a, b, c; switch(opcao){
int main(int argc, char *argv[]){ int opcao; double a, b, c; switch(opcao){
case 1: // Retângulo cout << “a e b?...”; cin >> a >> b; cout << “Área: “ << ArRet(a, b) << endl; break;
case 1: // Retângulo cout << “a e b?...”; cin >> a >> b; cout << “Área: “ << ArRet(a, b) << endl; break;
case 2: // Triângulo cout << “a, b, c?...”; cin >> a >> b >> c; cout << “Área: “ << ArTri(a, b, c) << endl; break;
case 2: // Triângulo cout << “a, b, c?...”; cin >> a >> b >> c; cout << “Área: “ << ArTri(a, b, c) << endl; break;
ChamadaChamada
ChamadaChamada
![Page 40: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/40.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 40/57
Exercício 13: Exercício 13: continuaçãocontinuação
case 3: // Elipse cout << “a e b?...”; cin >> a >> b; cout << “Área: “ << ArElp(a, b) << endl; break; default cout << “1, 2 ou 3!” << endl; } // switch return 0;}
case 3: // Elipse cout << “a e b?...”; cin >> a >> b; cout << “Área: “ << ArElp(a, b) << endl; break; default cout << “1, 2 ou 3!” << endl; } // switch return 0;}
ChamadaChamada
![Page 41: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/41.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 41/57
Exercício 14: Exercício 14: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para verificar se a cor de um ponto de seja a “main”, para verificar se a cor de um ponto de coordenadas cartesianas x e y é azul, segundo o coordenadas cartesianas x e y é azul, segundo o diagrama abaixo.diagrama abaixo.
yyyy
xxxx4444
4444
-4-4-4-4
4 4 2x y
losangolosangolosangolosango
maximo( 4 , 4 ) 2x y quadradoquadradoquadradoquadrado
![Page 42: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/42.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 42/57
Exercício 14: Exercício 14: solução.solução.
bool Azul(double x, double y)// Retorna true se o ponto é azul// e false se não é azul.{ if(abs(x – 4.0) + abs(y – 4.0) <= 2.0) return true; double a = abs(x – 4.0); double b = abs(y + 4.0); double maximo; if(a > b) maximo = a; else maximo = b; if(maximo <= 2.0) return true; return false; }
bool Azul(double x, double y)// Retorna true se o ponto é azul// e false se não é azul.{ if(abs(x – 4.0) + abs(y – 4.0) <= 2.0) return true; double a = abs(x – 4.0); double b = abs(y + 4.0); double maximo; if(a > b) maximo = a; else maximo = b; if(maximo <= 2.0) return true; return false; }
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
![Page 43: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/43.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 43/57
Exercício 15: Exercício 15: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para verificar se a cor de um ponto de seja a “main”, para verificar se a cor de um ponto de coordenadas cartesianas x e y é amarela, segundo o coordenadas cartesianas x e y é amarela, segundo o diagrama abaixo.diagrama abaixo.
4 4 2x y
yyyy
xxxx
4444
-4-4-4-4
( 8 0) ( 0) ( 0)y x x y triângulotriângulotriângulotriângulo
2 2( 4) ( 4) 4x y círculocírculocírculocírculo
![Page 44: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/44.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 44/57
Exercício 15: Exercício 15: solução.solução.
bool Amarelo(double x, double y)// Retorna true se o ponto é amarelo// e false se não é amarelo.{ double a = x + 4.0; double b = y – 4.0; double q = a * a + b * b; if(q <= 4.0 && y – x – 8.0 > 0.0) return true; else return false; }
bool Amarelo(double x, double y)// Retorna true se o ponto é amarelo// e false se não é amarelo.{ double a = x + 4.0; double b = y – 4.0; double q = a * a + b * b; if(q <= 4.0 && y – x – 8.0 > 0.0) return true; else return false; }
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
![Page 45: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/45.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 45/57
Exercício 16: Exercício 16: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para verificar se a cor de um ponto de seja a “main”, para verificar se a cor de um ponto de coordenadas cartesianas x e y é vermelha, segundo o coordenadas cartesianas x e y é vermelha, segundo o diagrama abaixo.diagrama abaixo.
4 4 2x y
yyyy
xxxx
4444
-4-4-4-4
( 8 0) ( 0) ( 0)y x x y triângulotriângulotriângulotriângulo
2 2( 4) ( 4) 4x y círculocírculocírculocírculo
![Page 46: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/46.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 46/57
Exercício 16: Exercício 16: solução.solução.
bool Vermelho(double x, double y)// Retorna true se o ponto é vermelho// e false se não é vermelho.{ double a = x + 4.0; double b = y – 4.0; double q = a * a + b * b; if(q <= 4.0 && y – x – 8.0 <= 0.0) return true; else return false; }
bool Vermelho(double x, double y)// Retorna true se o ponto é vermelho// e false se não é vermelho.{ double a = x + 4.0; double b = y – 4.0; double q = a * a + b * b; if(q <= 4.0 && y – x – 8.0 <= 0.0) return true; else return false; }
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
![Page 47: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/47.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 47/57
Exercício 17: Exercício 17: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para verificar se a cor de um ponto de seja a “main”, para verificar se a cor de um ponto de coordenadas cartesianas x e y é verde, segundo o coordenadas cartesianas x e y é verde, segundo o diagrama abaixo.diagrama abaixo.
( 8 0) ( 0) ( 0)y x x y triângulotriângulotriângulotriângulo
yyyy
xxxx
8888
-8-8-8-8
![Page 48: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/48.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 48/57
Exercício 17: Exercício 17: solução.solução.
bool Verde(double x, double y)// Retorna true se o ponto é verce// e false se não é verde.{ if(y – x – 8.0 <= 0.0 && x <= 0.0 && y >= 0.0) return true; else return false; }
bool Verde(double x, double y)// Retorna true se o ponto é verce// e false se não é verde.{ if(y – x – 8.0 <= 0.0 && x <= 0.0 && y >= 0.0) return true; else return false; }
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
![Page 49: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/49.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 49/57
siga a setasiga a seta
siga a setasiga a seta
siga a setasiga a seta
siga a setasiga a seta Passagem por referência
&
Passagem por referência
&
Exercício 18: Exercício 18: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para trocar os valores de duas variáveis.seja a “main”, para trocar os valores de duas variáveis.
void Troca(double &x, double &y)// Troca os valores das variáveis x e y.{ double aux = x; // Variável auxiliar. x = y; y = aux;}
void Troca(double &x, double &y)// Troca os valores das variáveis x e y.{ double aux = x; // Variável auxiliar. x = y; y = aux;}
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
saíd
asa
ída
a:3a:3a:3a:3
b:4b:4b:4b:4
a:4a:4a:4a:4
b:3b:3b:3b:3
ChamadaChamada
Troca ( a , b )Troca ( a , b )
simulação:simulação:
a:3a:3a:3a:3
b:4b:4b:4b:4
Troca ( a, b)Troca ( a, b)Troca ( a, b)Troca ( a, b)
xxxx
yyyy
aux:3aux:3aux:3aux:3
a:4a:4a:4a:4
b:3b:3b:3b:3
siga a seta
siga a seta
DefiniçãoDefinição
![Page 50: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/50.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 50/57
Sete Peças Básicas no C++Sete Peças Básicas no C++5555
falsefalsefalsefalse
truetruetruetrue
repetitiva forrepetitiva forrepetitiva forrepetitiva for
forfor( <inic.>; <comp.>; <inc.> )( <inic.>; <comp.>; <inc.> ){{
<comando 1>;<comando 1>; <comando 2>;<comando 2>; ...... <comando n>;<comando n>;}}
forfor( <inic.>; <comp.>; <inc.> )( <inic.>; <comp.>; <inc.> ){{
<comando 1>;<comando 1>; <comando 2>;<comando 2>; ...... <comando n>;<comando n>;}}
truetrue
falsefalse
ponto e ponto e vírgula vírgula
obrigatórioobrigatório
ponto e ponto e vírgula vírgula
obrigatórioobrigatório
ponto e ponto e vírgula vírgula
obrigatórioobrigatório
ponto e ponto e vírgula vírgula
obrigatórioobrigatório
Comando Comando simples não simples não
necessita das necessita das chaves { e }.chaves { e }.
Comando Comando simples não simples não
necessita das necessita das chaves { e }.chaves { e }.
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
![Page 51: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/51.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 51/57
Sete Peças Básicas no C++Sete Peças Básicas no C++
while while (<condição>){(<condição>){
<comando 1>;<comando 1>; <comando 2>;<comando 2>; ...... <comando n>;<comando n>;}}
while while (<condição>){(<condição>){
<comando 1>;<comando 1>; <comando 2>;<comando 2>; ...... <comando n>;<comando n>;}}
truetrue falsefalse
Comando Comando simples não simples não
necessita das necessita das chaves { e }.chaves { e }.
Comando Comando simples não simples não
necessita das necessita das chaves { e }.chaves { e }.
6666
falsefalsefalsefalse
truetruetruetrue
repetitiva whilerepetitiva whilerepetitiva whilerepetitiva while parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
![Page 52: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/52.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 52/57
Sete Peças Básicas no C++Sete Peças Básicas no C++
dodo{{ <comando 1>;<comando 1>; <comando 2>;<comando 2>; ...... <comando n>;<comando n>;
}while(<condição>);}while(<condição>);
dodo{{ <comando 1>;<comando 1>; <comando 2>;<comando 2>; ...... <comando n>;<comando n>;
}while(<condição>);}while(<condição>);
truetrue
falsefalse
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
parên-parên-teses teses
obriga-obriga-tóriostórios
7777
truetruetruetrue falsefalsefalsefalse
repetitiva do/whilerepetitiva do/whilerepetitiva do/whilerepetitiva do/while
![Page 53: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/53.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 53/57
Exercício 19: Exercício 19: elabore uma função C++, que não elabore uma função C++, que não seja a “main”, para calcular a soma abaixo. Use um “for”.seja a “main”, para calcular a soma abaixo. Use um “for”.
2 4 6 8 2
cos 1 ...2! 4! 6! 8! (2 )!
nx x x x xx
n
0000 1111 2222 3333 4444 nnnn............
2
1 2
x
2
3 4
x
2
5 6
x
2
7 8
x
2
9 10
x
kkk+1k+1
............
![Page 54: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/54.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 54/57
Passagem por valor
Passagem por valor
chamadachamada
retornoretorno
Exercício 19: Exercício 19: solução.solução.
double cosseno(double x, int n)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
double cosseno(double x, int n)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
sa
ída
sa
ída
2 2
cos 1 ...2! (2 )!
nx xx
n
en
tra
da
en
tra
da
en
tra
da
en
tra
da
double cos = 0.0; double p = 1.0; double q = - x * x; int k = 1; for(int i = 0; i < n; i++){ cos += p; p *= q / (k * (k + 1)); k += 2; } return cos;}
double cos = 0.0; double p = 1.0; double q = - x * x; int k = 1; for(int i = 0; i < n; i++){ cos += p; p *= q / (k * (k + 1)); k += 2; } return cos;}
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x, 10);...
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x, 10);...
![Page 55: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/55.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 55/57
Passagem por valor
Passagem por valor
chamadachamada
retornoretorno
Exercício 19: Exercício 19: solução com solução com “while”.“while”.
double cosseno(double x, int n)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
double cosseno(double x, int n)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
entr
ada
entr
ada
entr
ada
entr
ada
saíd
asa
ída
double cos = 0.0; double p = 1.0; double q = - x * x; int k = 1, i = 0; while(i < n){ cos += p; p *= q / (k * (k + 1)); k += 2; i++; } return cos;}
double cos = 0.0; double p = 1.0; double q = - x * x; int k = 1, i = 0; while(i < n){ cos += p; p *= q / (k * (k + 1)); k += 2; i++; } return cos;}
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x, 10);...
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x, 10);...
![Page 56: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/56.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 56/57
Um erropequeno!Um erro
pequeno!
Passagem por valor
Passagem por valor
chamadachamada
retornoretorno
Exercício 19: Exercício 19: outra solução outra solução com “while” e sem a quantidade de com “while” e sem a quantidade de parcelas n.parcelas n.
double cosseno(double x)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
double cosseno(double x)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
entr
ada
entr
ada
saíd
asa
ída
double cos = 0.0; double p = 1.0, erro = 1E-10; double q = - x * x; int k = 1; while(fasb(p) > erro){ cos += p; p *= q / (k * (k + 1)); k += 2; } return cos;}
double cos = 0.0; double p = 1.0, erro = 1E-10; double q = - x * x; int k = 1; while(fasb(p) > erro){ cos += p; p *= q / (k * (k + 1)); k += 2; } return cos;}
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x);...
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x);...
![Page 57: ESCOLA DE ENGENHARIA C++ Programação Estruturada](https://reader035.vdocuments.site/reader035/viewer/2022062223/552fc103497959413d8bee60/html5/thumbnails/57.jpg)
C++ - Programação EstruturadaC++ - Programação Estruturada Prof. Lincoln Cesar ZamboniProf. Lincoln Cesar Zamboni 57/57
Um erropequeno!Um erro
pequeno!
Passagem por valor
Passagem por valor
chamadachamada
retornoretorno
Exercício 19: Exercício 19: solução com solução com “do/while” e sem a quantidade de “do/while” e sem a quantidade de parcelas n.parcelas n.
double cosseno(double x)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
double cosseno(double x)// Retorna o cosseno de x (rad)// calculado com n+1 parcelas.{
entr
ada
entr
ada
saíd
asa
ída
double cos = 0.0; double p = 1.0, erro = 1E-10; double q = - x * x; int k = 1; do{ cos += p; p *= q / (k * (k + 1)); k += 2; }while(fasb(p) > erro); return cos;}
double cos = 0.0; double p = 1.0, erro = 1E-10; double q = - x * x; int k = 1; do{ cos += p; p *= q / (k * (k + 1)); k += 2; }while(fasb(p) > erro); return cos;}
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x);...
...// Chamada da função:double x = 45; // graux *= M_PI/180.0; // raddouble y = cosseno(x);...