Você está na página 1de 94

Algoritmos: Turma 911-A

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos: reviso

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos: reviso

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos: por que?

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Algoritmos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: o que uma varivel?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: o que uma varivel?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: o que uma varivel?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: o que uma varivel?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: o que uma varivel?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: o que uma varivel?


Veremos
detalhadamente o que
este tipo mais frente.

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Declarao de varivel em pseudolinguagem:

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Declarao de varivel na linguagem


C:

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: operadores?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Introduo: operadores?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Tipos (Linguagem C)

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Tipos (Linguagem C)

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Aritmticos
Operador

Descrio

Atribuio

Soma

Subtrao

Diviso

Mdulo (obtm o resto da


diviso)
Prof. MSc. Felipe Alencar Lopes
contato@felipealencar.net

Aritmticos
Operador

Descrio

Atribuio

Soma
1) Faa um programa que
utilize estes operadores em
Subtrao
seu algoritmo.
Diviso

/
%

Mdulo (obtm o resto da


diviso)
Prof. MSc. Felipe Alencar Lopes
contato@felipealencar.net

Aritmticos
Operador

Descrio

++

Incremento, soma 1 ao seu


operando (Equivale a:
a=1;
a=a+1; //a agora tem valor 2.)

--

Decremento, subtrai 1 do seu


operando (Equivale a:
a=1;
a=a-1; //a agora tem valor 0.)
Prof. MSc. Felipe Alencar Lopes
contato@felipealencar.net

Aritmticos
Operador
++

--

Descrio
Incremento,
1 ao seu
2) Faa umsoma
programa
que
operando
(Equivaleentre
a: usar o
mostre a diferena
a operador
= 1;
de (de)incremento
a++;
//a agora
temdavalor
2.)
antes
e depois
varivel.
Exemplo:
Decremento,
subtrai 1 do seu
= a++;a:
operando valor
(Equivale
valor = ++a;
a = 1;
a--; //a agora tem valor 0.)
Prof. MSc. Felipe Alencar Lopes
contato@felipealencar.net

Aritmticos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Relacionais

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Relacionais
Operador

Descrio

>

Maior

>=

Maior ou igual

<

Menor

<=

Menor ou igual

==

Igualdade

!=

Diferente
Prof. MSc. Felipe Alencar Lopes
contato@felipealencar.net

Relacionais
Operador

Descrio

>
Maior
O operador ( = ) diferente (!=) do operador (==)
>=
Maior ou igual

<
<=

Menor
Menor ou igual

==

Igualdade

!=

Diferente
Prof. MSc. Felipe Alencar Lopes
contato@felipealencar.net

Relacionais

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Lgicos
Operador

Descrio

&&

AND

||

OR

NOT

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Lgicos

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Entrada de dados

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Entrada de dados
Pseudo-linguagem:

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Entrada de dados
Linguagem C e o comando scanf():

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Entrada de dados
Linguagem C e o comando scanf():
Todo programa em C que usar funes para
entrada ou sada de dados como o resgate de
valores digitados pelo usurio ou ento exibio
de mensagens de retorno exigir a incluso
do cabealho stdio.h.

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Entrada de dados
Linguagem C e o comando scanf():
O que esse %d? E esse &a?

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Entrada de dados
Linguagem C e o comando scanf():
O que esse %d? E esse &a?
%d um cdigo de converso, usado
de acordo com o tipo da varivel (olha o
tipo aqui de novo) onde os valores digitados
sero armazenados.
O & refere-se aos endereos de memria das
variveis a e b, neste caso.

Prof. MSc. Felipe Alencar Lopes


contato@felipealencar.net

Entrada de dados
Linguagem C e o comando scanf():
Cdigo

Elemento Armazenado

%c

Um nico caractere

%d ou %i

Um inteiro do sistema decimal

%o

Um inteiro do sistema octal

%x

Um inteiro do sistema hexadecimal

%ld

Um valor do tipo long

%e

Um nmero na notao cientfica

%f

Um nmero em ponto flutuante

%s

Uma cadeia de caracteres

Prof. Felipe Alencar

Entrada de dados
Linguagem C e o comando scanf():
Na prtica: scanf.c.

Prof. Felipe Alencar

Entrada de dados
Linguagem C e o comando getchar():
Na prtica: getchar.c.

Prof. Felipe Alencar

Sada de dados

Prof. Felipe Alencar

Sada de dados
Pseudo-linguagem:

Prof. Felipe Alencar

Sada de dados
Linguagem C e o comando printf():

Prof. Felipe Alencar

Sada de dados
Linguagem C e o comando printf():
Cdigo

Elemento Armazenado

%c

Um nico caractere

%d ou %i

Um inteiro do sistema decimal

%o

Um inteiro do sistema octal

%x

Um inteiro do sistema hexadecimal

%ld

Um valor do tipo long

%e

Um nmero na notao cientfica

%f

Um nmero em ponto flutuante

%s

Uma cadeia de caracteres

Prof. Felipe Alencar

Sada de dados
Linguagem C e o comando printf(), ainda tem mais cdigos:
Cdigo

Elemento Armazenado

\n

Leva o cursor para a prxima linha

\t

Executa uma tabulao

\b

Executa um retrocesso

\f

Leva o cursor para a prxima pgina

\a

Emite um sinal sonoro (beep)

Exibe o caractere

\\

Exibe o caractere \

\%

Exibe o caractere %

Prof. Felipe Alencar

Sada de dados
Linguagem C e o comando printf(), ainda tem mais cdigos:
Cdigo

Elemento Armazenado

\n

Leva o cursor para a prxima linha

\t

Executa uma tabulao

\b

Executa um retrocesso

\f
\a

Leva o cursor para a prxima pgina


Decorar?
Emite um sinal sonoro (beep)

Exibe o caractere

\\

Exibe o caractere \

\%

Exibe o caractere %

Prof. Felipe Alencar

Passo-a-passo

Prof. Felipe Alencar

Passo-a-passo

Prof. Felipe Alencar

Passo-a-passo

Prof. Felipe Alencar

Passo-a-passo

Prof. Felipe Alencar

Passo-a-passo

Prof. Felipe Alencar

Passo-a-passo

Prof. Felipe Alencar

Algoritmos

Prof. Felipe Alencar

Algoritmos

Prof. Felipe Alencar

Reviso: Algoritmo
Tipo dos dados

Prof. Felipe Alencar

O que so dados?

Prof. Felipe Alencar

O tipo de dado

Prof. Felipe Alencar

O tipo de dado: na linguagem C


Denominao

Nmero de Bytes

Conjunto de valores

char

caracteres codificados no cdigo ASCII

int

nmeros inteiros de 32768 32767

long ou long int

nmeros inteiros de 65536 a 65535

float

nmeros reais de 3,4x1038 3,4x1038


e 3,4x1038 3,4x1038

double

nmeros reais de 1,7x10308 -1,7x10308


e 1,7x10308 1,7x10308

void

conjunto vazio
Prof. Felipe Alencar

O tipo de dado: na linguagem C


Denominao

Nmero de Bytes

Conjunto de valores

char

caracteres codificados no cdigo ASCII

int

long ou long int

nmeros inteiros 1debyte


32768
32767
= 8 bits
Posies
na memria
nmeros inteiros
de 65536
a 65535

float

nmeros reais de 3,4x1038 3,4x1038


e 3,4x1038 3,4x1038

double

nmeros reais de 1,7x10308 -1,7x10308


e 1,7x10308 1,7x10308

void

conjunto vazio

Prof. Felipe Alencar

O tipo de dado: na linguagem C


Denominao

Nmero de Bytes

Conjunto
de valores
A linguagem
C no possui o tipo de dado
caracteres codificados
no cdigo
booleano*,
mas voc
aindaASCII
possui duas
alternativas:
nmeros inteiros de 32768 32767
1. Definir um novo tipo de dado;
nmeros
inteiros
a 65535 os valores
2. Utilizar
o tipo de
int 65536
para representar
38 (0).
de verdadeiro
(1) ou falso
nmeros
reais de 3,4x10
3,4x1038
e 3,4x1038 3,4x1038

char

int

long ou long int

float

double

nmeros reais de 1,7x10308 -1,7x10308


e 1,7x10308 1,7x10308

void

* A especificao mais recente da linguagem adicionou o tipo bool.

conjunto vazio

Prof. Felipe Alencar

O tipo de dado: declarao de


variveis

Prof. Felipe Alencar

O tipo de dado: declarao de


variveis na linguagem C

Prof. Felipe Alencar

O tipo de dado: declarao de


variveis na linguagem C
Quando usar char? float? double?

!
Prof. Felipe Alencar

O tipo de dado: declarao de


constantes

Prof. Felipe Alencar

O tipo de dado: declarao de


constantes na linguagem C

Prof. Felipe Alencar

Expresses aritmticas

Prof. Felipe Alencar

Expresses aritmticas

Prof. Felipe Alencar

Expresses aritmticas

Prof. Felipe Alencar

Expresses Lgicas

Prof. Felipe Alencar

Algoritmos

Prof. Felipe Alencar

Algoritmos

Prof. Felipe Alencar

Estruturas Condicionais

Prof. Felipe Alencar

Estruturas Condicionais

Prof. Felipe Alencar

Estruturas Condicionais
Se os nmeros digitados pelo usurio so iguais (em pseudo-lingagem):

Prof. Felipe Alencar

Estruturas Condicionais
Se os nmeros digitados pelo usurio so iguais (na linguagem C, comandos if else):

Prof. Felipe Alencar

Estruturas Condicionais
Outra forma de escrever utilizando a estrutura do comando switch:

Prof. Felipe Alencar

Estruturas Condicionais
Outro meio, no muito utilizado, com o operador condicional ternrio:
Varivel = Expresso lgica ? Expresso 1 : Expresso 2
Na execuo deste comando a Expresso lgica avaliada e se for diferente de zero
o valor da Expresso 1 atribudo Varivel; caso contrrio, o valor da Expresso 2
atribudo
Na linguagem C:
maior = (x > y) ? x : y;

Prof. Felipe Alencar

Estruturas de Repetio
Na linguagem C dispomos de trs estruturas de repetio:
while
do while
for
Iremos ver um exemplo para cada uma delas.

Prof. Felipe Alencar

Estruturas de Repetio
Digamos que nosso programa que soma dois valores fosse utilizado em uma
calculadora de soma.

Prof. Felipe Alencar

Estruturas de Repetio
Sempre que o usurio quiser realizar uma soma, o programa deve estar disponvel
at que seja fechado.

Prof. Felipe Alencar

Estruturas de Repetio
Em pseudo-linguagem, teramos um cdigo da seguinte forma:

Prof. Felipe Alencar

Estruturas de Repetio
Em pseudo-linguagem, teramos um cdigo assim:

Prof. Felipe Alencar

Estruturas de Repetio
Na linguagem C, utilizaremos os comandos while e do while para atingir o mesmo
objetivo:

Prof. Felipe Alencar

Estruturas de Repetio

Prof. Felipe Alencar

Estruturas de Repetio

Prof. Felipe Alencar

Estruturas de Repetio
Para exemplificar a estrutura do comando for da linguagem C, iremos modificar um
pouco nossa condio, e o programa s ir parar quando o usurio realizar trs
operaes de soma.

Prof. Felipe Alencar

Estruturas de Repetio

Prof. Felipe Alencar

Para prxima aula...


Implemente um algoritmo que simule uma calculadora, utilizando todos os
operadores aritmticos que vimos at agora. O programa dever permitir que o
usurio escolha a operao aritmtica desejada e dever ser executado
continuamente at que o usurio opte pelo seu encerramento, pressionando
alguma tecla de sada definida por voc.

Prof. Felipe Alencar

Prof. Felipe Alencar

Você também pode gostar