Você está na página 1de 86

ALGORITMOS AULA DE REVISO AV1

ALGORITMOS

Ateno aos Temas Principais dessa Aula

RAV1

ALGORITMOS

Contedo Programtico desta aula Reviso dos principais assuntos ministrados nas Aulas de 1 at 5;

RAV1

ALGORITMOS

Direto ao Assunto

RAV1

ALGORITMOS

Estrutura da Linguagem Grfica

RAV1

ALGORITMOS

Comando de Sada (display)

Dentro desse smbolo, poderemos encontrar:

RAV1

ALGORITMOS

Comando de Atribuio um dos quatro comandos bsicos da programao. Consiste em se atribuir um valor a uma varivel.

RAV1

ALGORITMOS

Comando de Entrada de Dados

Dentro desse smbolo, poderemos encontrar:

RAV1

ALGORITMOS

Comando se...ento...seno

se simples

se composto

RAV1

ALGORITMOS

Comando se...ento...seno se ses encadeados

RAV1

ALGORITMOS

Comando escolha

RAV1

ALGORITMOS

LINGUAGENS ALGORTMICAS

RAV1

ALGORITMOS

VARIVEL A varivel pode ser definida como sendo um endereo, ou mais de um endereo, na memria principal que armazena dados/ informaes e cujo valor poder ser alterado durante a execuo do programa. A esse endereo ser associado a um nome.

RAV1

ALGORITMOS

Estrutura da Linguagem Algortmica Portugol

Todos os comandos devero ser colocados entre inicio e fim.


RAV1

ALGORITMOS

Comando de Sada (display)

escrever escrever escrever escrever escrever

varivel constante numrica "texto" [expresso] varivel , "texto" ,. . .

Portugol

escrever dia escrever 23

escrever Entendi escrever 23 + 89


RAV1

ALGORITMOS

VARIVEL Declarando Varivel - Portugol tipo nomeDaVarivel Regras para se nomear variveis
Muitas linguagens aceitam undescore (_) alm dos algarismos e letras no acentuadas. Ateno para palavras reservadas. Mas para facilitar, nesse primeiro momento, e atender s trs linguagens algortmicas, vamos adotar aqui as seguintes regras: 1o caracter -> letra A partir do segundo, letra ou algarismo.
RAV1

tipo nV1, nV2, nVn

Observao: Veja nos site outras formas de declaraes

ALGORITMOS

Comando de Atribuio um dos quatro comandos bsicos da programao. Consiste em se atribuir um valor a uma varivel.

Portugol

var <- ...


RAV1

ALGORITMOS

Comando de Entrada de Dados

ler nomeVarivel ler nVar1, nVar2 Portugol

ler nome

ler idade

ler altura, peso

RAV1

ALGORITMOS

Comando se...ento...seno

se simples

se composto

Portugol

RAV1

ALGORITMOS

Comando se...ento...seno se ses encadeados

Portugol

RAV1

ALGORITMOS

Comando escolha

Portugol

RAV1

ALGORITMOS

Comando escolha

Portugol

RAV1

ALGORITMOS

Estrutura da Linguagem Algortmica WEBportugol

O cabealho obrigatrio: programa nome. As declaraes das variveis so posicionadas depois do comando declaracoes e os demais comandos sero colocados entre inicio e fim.

RAV1

ALGORITMOS

Comando de Sada (display)

escreva( varivel ) escreva( constante numrica ) escreva( "texto") escreva("texto, varivel)

WEBportugol

escreva( dia) escreva( 23 )

escreva( Entendi) escreva( soma: , s)


RAV1

ALGORITMOS

VARIVEL Declarando Varivel - WEBportugol tipo nomeDaVarivel Regras para se nomear variveis
Muitas linguagens aceitam undescore (_) alm dos algarismos e letras no acentuadas. Ateno para palavras reservadas. Mas para facilitar, nesse primeiro momento, e atender s trs linguagens algortmicas, vamos adotar aqui as seguintes regras: 1o caracter -> letra A partir do segundo, letra ou algarismo.
RAV1

tipo nV1, nV2, nVn

Observao: Veja nos site outras formas de declaraes

ALGORITMOS

Comando de Atribuio um dos quatro comandos bsicos da programao. Consiste em se atribuir um valor a uma varivel.

WEBportugol

var <- ...


RAV1

ALGORITMOS

Comando de Entrada de Dados

leia( nomeVarivel) leia( nVar1, nVar2) WEBportugol

leia(nome)

leia(idade)

leia (altura, peso)

RAV1

ALGORITMOS

Comando se...ento...seno

se simples

se composto

WEBportugol

RAV1

ALGORITMOS

Comando se...ento...seno se ses encadeados

WEBportugol

RAV1

ALGORITMOS

Estrutura da Linguagem Algortmica UAL

O cabealho obrigatrio: prog xxx. Todos os comandos devero ser posicionados entre os comandos prog e fimprog, comeando pela declarao das variveis.

RAV1

ALGORITMOS

Comando de Sada (display)

imprima imprima imprima imprima imprima

varivel; constante numrica; "texto"; [expresso]; varivel , "texto", . . .;

UAL

imprima dia; imprima 23;

imprima Entendi; imprima 23 + 89;


RAV1

ALGORITMOS

Comando de Sada (display)

Os caracteres de controle \n e \t so usados com o comando imprima(escrever ou escreva) para que o programador possa decidir, parcialmente, onde mensagem, contedo de varivel, constante, etc, ser exibido. O \t no est disponvel no WEBportugol
RAV1

ALGORITMOS

VARIVEL Declarando Varivel - UAL tipo nomeDaVarivel; tipo nV1, nV2, nVn;

Regras para se nomear variveis


Muitas linguagens aceitam undescore (_) alm dos algarismos e letras no acentuadas. Ateno para palavras reservadas. Mas para facilitar, nesse primeiro momento, e atender s trs linguagens algortmicas, vamos adotar aqui as seguintes regras: 1o caracter -> letra A partir do segundo, letra ou algarismo.
RAV1

ALGORITMOS

Comando de Atribuio um dos quatro comandos bsicos da programao. Consiste em se atribuir um valor a uma varivel.

UAL

var <- ...;


RAV1

ALGORITMOS

Comando de Entrada de Dados

leia nomeVarivel;

UAL

leia nome;

leia idade;

leia altura;

RAV1

ALGORITMOS

Comando se...ento...seno

se simples

se composto

UAL

RAV1

ALGORITMOS

Comando se...ento...seno se ses encadeados

UAL

RAV1

ALGORITMOS

Operadores Aritmticos
Operador + * / / div %
ou

Significado adio subtrao multiplicao diviso diviso diviso 13 + 28 28 - 13 28 * 13

Exemplo

8/5 1.6 UAL / WEBportugol 1 C++/ Portugol 8/5. 1.6 C++/ Portugol 8 div 5 1 UAL / WEBportugol 8 % 5 3 UAL /Portugol 8 mod 5 3 WEBportugol 2**3 ** 8
RAV1

mod resto potenciao

** ^

ALGORITMOS

O TESTE

Uma expresso relacional

RAV1

ALGORITMOS

O TESTE

RAV1

ALGORITMOS

Exemplos UAL idade >= 18 n % 2 == 0 8 <> 5 sexo == "f" Portugol idade >= 18 n%2=0 8 =/= 5 sexo = "f" WEBportugol idade >= 18 n mod 2 = 0 8 != 5 sexo = "f"

Obs: Todos os operadores Relacionais tm a mesma hierarquia.

RAV1

ALGORITMOS

O TESTE

Duas, ou mais, expresses relacionais

RAV1

ALGORITMOS

O TESTE

RAV1

ALGORITMOS

O TESTE

Binrio Binrio

RAV1

ALGORITMOS

O TESTE

Unrio

RAV1

ALGORITMOS

Exemplos
UAL

num >=100 && num <= 999 !var Portugol num >=100 e num <= 999 nao var
WEBportugol

num >=100 e num <= 999 nao var


Obs: !(nao) tem maior hierarquia, seguido do &&(and) e, depois, ||(ou)
RAV1

ALGORITMOS

FUNES NUMRICAS - UAL

sen(x) cos(x) tan(x) abs(x) exp(x) log(x) raiz(x) intreal(x) realint(x)


Clique em Biblioteca

seno de um ngulo(x) em radianos co-seno de um ngulo(x) em radianos tangente de um ngulo(x) em radianos valor de x independente do sinal nmero e(neperiano) elevado a x logaritmo neperiano de x raiz quadrada de x converte x para real converte x para matematicamente. inteiro, arredondando

FUNES NUMRICAS - Portugol http://orion.ipt.pt/~aulasi/ip/04-decisao/help/index.html


RAV1

ALGORITMOS

RAV1

ALGORITMOS

As Bibliotecas cctype cstring

...

iostream

cmath

iomanip

cstdlib

RAV1

ALGORITMOS

Como incluir uma biblioteca no programa?

#include <iostream>

#include anita.h

RAV1

ALGORITMOS

Como Facilitar o Uso dos Recursos de E/S da Biblioteca iostream?

RAV1

ALGORITMOS

Estrutura Bsica - para comear

RAV1

ALGORITMOS

Comando de Sada (display)

cout<< ... << ....<< ... ;

cout<< <varivel> ; cout<< <constante>;

cout<< varivel <<<constante>; cout<< <operaes> ;


RAV1

ALGORITMOS

VARIVEL Declarando Varivel C++ tipo nomeDaVarivel; tipo nV1, nV2, nVn;

Regras para se nomear variveis


A linguagem aceita undescore (_) alm dos algarismos e letras no acentuadas. Ateno para palavras reservadas. Mas para facilitar, nesse primeiro momento, e atender s trs linguagens algortmicas, vamos adotar aqui as seguintes regras: 1o caracter -> letra A partir do segundo, letra ou algarismo.
RAV1

ALGORITMOS

Comando de Atribuio

nomeVar = <expresso>;

nomeVar = nomeVar <op> valor;

nomeVar <op>= valor;


RAV1

ALGORITMOS

Comando de Entrada de Dados

cin>>nomeVar ; cin>>nomeVar1>>nomeVar2;

cin>>altura;

cin>>AV1>>AV2>>AV3;
RAV1

ALGORITMOS

Operador de Extrao e Operador de Insero, usados com cin e cout.

RAV1

ALGORITMOS

Comando se...ento...seno if simples if composto

RAV1

ALGORITMOS

Comando se...ento...seno se ifs encadeados

RAV1

ALGORITMOS

Comando escolha

RAV1

ALGORITMOS

FUNES NUMRICAS UAL


sen(x) cos(x) tan(x) abs(x) exp(x) log(x) neperiano raiz(x) No disponvel intreal(x) realint(x) seno de um ngulo co-seno um ngulo tangente um ngulo o valor de sem sinal nmero e elevado a x logaritmo de x na base e raiz quadrada de x potncia da base elevada a expo converte x para real converte x para inteiro

C++
sin(x) cos(x) tan(x) abs(x) exp(x) log(x) neperiano sqrt(x) pow(base, expo) (float) (int)

Observao: Tanto em UAL quanto em C++, os argumentos das funes trigonomtricas precisam estar em radianos. Converta para radiano, usando: ngulo * 3.14159265/180
RAV1

ALGORITMOS

VAMOS PRATICAR

RAV1

ALGORITMOS

O Problema da Data

O operador %(mod)

151118
RAV1

ALGORITMOS

1)O Problema da Data

dia

100000 10000

1000

100

10

151118
RAV1

ALGORITMOS

O Problema da Data

dia

100000 10000

1000

100

10

151118
div /
RAV1

ALGORITMOS

O Problema da Data

dia

100000 10000

1000

100

10

151118
151118 div / 10000
RAV1

ALGORITMOS

O Problema da Data

mes

100000 10000

1000

100

10

151118
RAV1

ALGORITMOS

O Problema da Data

mes

100000 10000

1000

100

10

151118
div /
RAV1

ALGORITMOS

O Problema da Data

mes

100000 10000

1000

100

10

151118
151118 div / 100
RAV1

ALGORITMOS

O Problema da Data

mes

1000

100

10

1511
(151118 div / 100)
RAV1

ALGORITMOS

O Problema da Data

mes

1000

100

10

1511
(151118 div / 100) % mod
RAV1

ALGORITMOS

O Problema da Data

mes

1000

100

10

1511
(151118 div / 100) % mod 100
RAV1

ALGORITMOS

O Problema da Data

ano

10000

1000

100

10

151118
151118 % mod 100
RAV1

ALGORITMOS

2) Usando errado a Estrutura do se...entao...senao

RAV1

ALGORITMOS

2) Usando errado a Estrutura do se...entao...senao

CORRIGIDO

RAV1

ALGORITMOS

3) Entendo o break no switch()

RAV1

ALGORITMOS

4) Menu com switch()

#include <iostream> #include <cstdlib> using namespace std; int main() { char aula; float n1, n2; cout<<"\nPrimeiro numero: "; cin>>n1; cout<<"\nSegundo numero: "; cin>>n2;

RAV1

ALGORITMOS

4) Menu com switch() cout<<"\n\n========\n"; cout<<"\nOperacao\n"; cout<<"\n+ Somar"; cout<<"\n- Subtrair"; cout<<"\n* Multiplicar"; cout<<"\n/ dividir"; cout<<"\nOpcao: "; cin>> aula;

RAV1

ALGORITMOS

4) Menu com switch()

switch(aula) { case '+':cout<< "\n"<<n1+n2<<"\n"; break; case '-':cout<< "\n"<<n1-n2<<"\n"; break; case '*':cout<< "\n"<<n1*n2<<"\n"; break; case '/':cout<< "\n"<<n1/n2<<"\n"; break; default: cout<<"\nOpcao invalida\n"; } cout<<"\n\n"; system("pause"); }
RAV1

ALGORITMOS

5) Reajuste Salarial

prog revisao real salario, novoSalario; imprima "\nDigite salario:"; leia salario; se( salario <= 1000.0) { novoSalario <- salario * 1.1; } senao { se( salario <= 2000.0) { novoSalario <- salario * 1.08; } senao { se( salario <= 3000.0) { novoSalario <- salario * 1.05; }
RAV1

ALGORITMOS

5) Reajuste Salarial } }

senao { novoSalario <- salario * 1.03; }

imprima "\nSeu salario novo: R$ ", formatar(novoSalario,2) , "\n"; fimprog

RAV1

ALGORITMOS

5) Reajuste Salarial

RAV1

ALGORITMOS

6) IMC

#include <iostream> #include <cstdlib> using namespace std; int main() { float altura, peso, IMC; cout<<"\nAltura: "; cin>>altura; cout<<"\nPeso: "; cin>>peso; IMC = peso/(altura*altura); if( IMC < 17 || IMC >= 25) cout<< "\nConsulte um medico\n"; else cout<< "\nContinue assim\n"; cout<<"\nIMC = "<<IMC<<endl; system("pause"); }
RAV1

ALGORITMOS

//COMENTRIO DE UMA LINHA

/* COMENTRIO COM MAIS DE UMA LINHA */

RAV1

ALGORITMOS

Origem do Dado

O dado um valor fornecido pelo usurio, gerado pelo programa ou lido de um arquivo

Manipular dados/informaes , com certeza, uma das principais funes de um computador.


RAV1

ALGORITMOS

Resumindo

RAV1

Você também pode gostar