Você está na página 1de 53

Computação I - CEDERJ

(Introdução a lógica de programação)

Tutor Érick Barbosa

(Material não oficial)


Informações

Material feito para os alunos do CEDERJ, disciplina Computação I do curso de


Engenharia de Produção.

A principal referência deste material é a apostila oficial da disciplina.


Dicas

Serão apontados os principais tópicos da ementa da disciplina, ou seja, este


material não substitui a apostila. Não espere aprender por completo uma
disciplina, rica em detalhes, em menos de 50 slides.

É extremamente importante a realização dos exercícios da apostila.


Dicas

Se os conceitos aqui abordados são estranhos a você, tente começar os


estudos através da ferramenta Scratch.

Link do scratch: https://scratch.mit.edu/


Primeira Parte

1 - Algoritmo

2 - Sintaxe básica

3 - Expressões lógicas

4 - Desvio condicional

5 - Repetição
Algoritmo
Definição:

Conjunto finito de passos bem definidos para resolver um problema.

Exemplos:

● Somar todos os números inteiros de 1 a 1000.


● Somar todos os números inteiros, e múltiplos de 3, de 1 a 1000.
● Dado um número inteiro, dizer se ele é par ou ímpar.
Sintaxe básica

Estrutura básica

Variáveis

Impressão

Comando de leitura
Sintaxe básica - Estrutura Básica

Algoritmo nome_do_algoritmo( ) Algoritmo olaMundo( )


Início Início
/* corpo */ Imprimir “Olá Mundo”
Fim Fim
Sintaxe básica - Variáveis

Os principais tipos são: Inteiro, Real, Texto, Lógico

Exemplos:

Inteiro -> Ex: 0, -5, 10, -20, 30

Real -> Ex: 1.2, -2.8, 4.63, 5.0

Texto -> Ex: ‘Computação I’, ‘Engenharia’

Lógico -> Ex: Verdadeiro, Falso


Sintaxe básica - Impressão
Algoritmo olaMundo( ) Saída do programa:
Início
//Impressão de variável texto
Imprimir “2+2” 2+2
Fim

Algoritmo olaMundo( ) Saída do programa:


Início
//Impressão de variável numérica(
Inteiro ou Real ) 4
Imprimir 2+2
Fim
Sintaxe básica - Variáveis

Declaração de variáveis, exemplo:


Algoritmo declaracao( )
Início
Inteiro num
num = 2
Imprimir num
Fim
Sintaxe básica - Comando de leitura

Exemplo de utilização de comando de leitura:


Algoritmo exemploLeitura( )
Início
Inteiro num
Ler num
Imprimir num
Fim
Uma abstração do funcionamento do
Computador.

Declaração de variável

Inteiro a

Atribuição de valor

a=5

Memória do computador
Uma abstração do funcionamento do
Computador.

Declaração de variável

Inteiro a

Atribuição de valor

a=5 a

Memória do computador
Uma abstração do funcionamento do
Computador.

Declaração de variável

Inteiro a

Atribuição de valor

a=5 a
5

Memória do computador
Uma abstração do funcionamento do
Computador. Operação de soma.

Inteiro a, b, c
a=5
b=3
c=a+b
Imprimir “O valor de c é : ” + c

Memória do computador
Uma abstração do funcionamento do
Computador. Operação de soma.

Inteiro a, b, c
a=5
b=3
c=a+b
Imprimir “O valor de c é : ” + c
a b c

Memória do computador
Uma abstração do funcionamento do
Computador. Operação de soma.

Inteiro a, b, c
a=5
b=3
c=a+b
Imprimir “O valor de c é : ” + c
a b c
5 3

Memória do computador
Uma abstração do funcionamento do
Computador. Operação de soma.

Inteiro a, b, c
a=5
b=3
c=a+b
Imprimir “O valor de c é : ” + c
a b c
5 3 8

Memória do computador
Expressões lógicas

Expressões cujo valor é do tipo lógico ( Verdadeiro ou Falso )

-Expressões simples

-Negação(!), Conjunção(&), Disjunção(|)


Expressões lógicas - Expressões simples

Operador Exemplo Verdadeira quando?

== a == b a é igual a b

!= a != b a é diferente de b

> a>b a é maior que b

< a<b a é menor que b

>= a >= b a é maior ou igual a b

<= a <= b a é menor ou igual a b


Expressões lógicas - Expressões simples

Exemplos:

2 == 3 … Falso

2!=3 … Verdadeiro

1>3 … Falso

1<3 … Verdadeiro
Expressões lógicas - Negação(!)

Inverte o retorno da expressão

Expressão !Expressão

Verdadeiro Falso

Falso Verdadeiro
Expressões lógicas - Negação(!)

Exemplo:

4 > 2 resulta em Verdadeiro

!( 4 > 2 ) resulta em Falso


Expressões lógicas - Conjunção(&)

Retorna Verdadeiro se as duas expressões são Verdadeiras

Expressão 1 Expressão 2 Expressão 1 & Expressão 2

Falso Falso Falso

Falso Verdadeiro Falso

Verdadeiro Falso Falso

Verdadeiro Verdadeiro Verdadeiro


Expressões lógicas - Conjunção(&)

Exemplos:

2>1 & 1<2 … Verdadeiro

2>1 & 1>2 … Falso

5==5 & 1==1 … Verdadeiro


Expressões lógicas - Disjunção (|)

Retorna Verdadeiro se uma das duas expressões é Verdadeira

Expressão 1 Expressão 2 Expressão 1 | Expressão 2

Falso Falso Falso

Falso Verdadeiro Verdadeiro

Verdadeiro Falso Verdadeiro

Verdadeiro Verdadeiro Verdadeiro


Expressões lógicas - Disjunção(|)

Exemplos:

2>1 | 1<2 … Verdadeiro

2>1 | 1>2 … Verdadeiro

5==5 | 1==1 … Verdadeiro

3!=3 | 4<1 … Falso


Desvio condicional

Estrutura capaz de “desviar” o fluxo de execução do programa através de uma


condição( expressão lógica )

-Desvio simples

-Desvio composto
Desvio condicional - Desvio simples

Executa Código 1 caso Expressão seja verdadeira

Se ( Expressão ) Faça

/* Código 1 */

Fim Se
Desvio condicional - Desvio simples

Exemplo:

Se ( 1 < 2 ) Faça

Imprimir “1 é menor que 2”

Fim Se
Desvio condicional - Desvio composto

Executa Código 1 caso a Expressão seja verdadeira, Código 2 caso contrário

Se ( Expressão ) Faça

/* Código 1 */

Senão

/* Código 2 */

Fim Se
Desvio condicional - Desvio composto

Exemplo:

Se ( 1 < 2 ) Faça
Imprimir “1 é menor que 2”
Senão
Imprimir “1 é maior que 2”
Fim Se
Repetição

Estrutura capaz de executar repetidamente um trecho de código

-Com contador

-Sem contador
Repetição - Com contador

Estrutura básica:

Para ( Inicialização ; Condição de parada ; Passo ) Faça

/* Instrução */

Fim Para
Repetição - Com contador

Exemplo: Saída do programa

Inteiro i Início
1
Imprimir “Início”
2
Para ( i = 0 ; i <= 5 ; i = i + 1 ) Faça 3
Imprimir i 4
5
Fim Para
Fim
Imprimir “Fim”
Repetição - Sem contador

Controle no início Controle no fim

Enquanto ( Expressão ) Faça Faça

/* Instruções */ /* Instruções */

Fim Enquanto Enquanto ( Expressão )


Repetição - Sem contador

Certo Errado!

Inteiro i = 0 Enquanto ( 1<2 ) Faça

Enquanto ( i <= 5 ) Faça Imprimir “Repetição”


Imprimir “Repetição” + i Fim Enquanto
i=i+1 (Loop infinito!)
Fim Enquanto
Segunda Parte

-Vetores

-Matrizes

-Funções e procedimentos

-Recursão
Vetores

Definição: Conjunto identificável de posições de memória capaz de armazenar


dados de um determinado tipo.

-Declaração

-Alocação

-Acesso

Exemplo de vetor com 5 posições


Vetores - Declaração

Declaração:

tipo [ ] identificador

Exemplo: Armazenar dados de alunos de uma sala de aula

Inteiro [ ] idade

Real [ ] altura, nota


Vetores - Alocação

Alocação:

tipo [ ] identificador = tipo[N]

Exemplo: A mesma sala de aula tem 30 alunos, logo:

Inteiro [ ] idade = Inteiro[30]

Real [ ] nota

nota = Real[30]
Vetores - Acesso
Exemplo de declaração, alocação e acesso:
Inteiro [ ] idade = Inteiro[5]
idade[0] = 17
idade[1] = 15
idade[2] = 20 idade
idade[3] = 19
Posição do vetor 0 1 2 3 4
idade[4] = 18
Dado armazenado 17 15 20 19 18
Representação do vetor
Matriz

Definição: Conjunto identificável de posições de memória capaz de armazenar


dados de um determinado tipo. Difere dos vetores pelo tipo de indexação.

-Declaração

-Alocação

-Acesso

Exemplo de matriz de 2 dimensões e 9 posições.


Matriz - Declaração

Declaração:

tipo [ ][ ] identificador

Exemplo: Armazenar número de vendas por comprador e dia do mês

Inteiro [ ][ ] vendas
Matriz - Alocação

Alocação:

tipo [ ][ ] identificador = tipo[M][N]

Exemplo: Registro de vendas de uma equipe de 3 vendedores em 5 dias

Inteiro [ ][ ] vendas = Inteiro[3][5]

ou

Inteiro [ ][ ] vendas = Inteiro[5][3]


Matriz - Acesso

vendas
0 1 2 3 4

0 13 15 11 8 25
1 10 8 12 18 21
2 2 2 12 25 30
Funções e procedimentos

Permitem escrever códigos mais organizados e com menos repetições.

Função Procedimento

tipo nome(<parâmetros>) Procedimento


Início nome(<parâmetros>)
/* Instruções */ Início
Fim /* Instruções */
Fim
Funções
Escreva um programa que converta minutos em segundos utilizando função.
Inteiro segundos( Inteiro minutos ) Algoritmo tempo( )
Início Início
Retorne ( 60*minutos ) Inteiro min, sec
Fim Imprimir “Tempo da exp. em
minutos”
Ler min
sec = segundos(min)
Imprimir “O tempo em segundos
é” + sec
Fim
Procedimentos
Escreva um procedimento que informe se o parâmetro de entrada é par ou
ímpar. Utilize-o num algoritmo.

Procedimento teste( Inteiro a ) Algoritmo numero( )


Início Início
Se ( a % 2 == 0 ) Então Inteiro num
Imprimir “O número é par” Imprimir “Digite um valor”
Senão Ler num
Imprimir “O número é ímpar” teste(num)
Fim Se Fim
Fim
Recursão

Exemplo:

Definição do fatorial

n! = 1 se n ∈ [0,1] ( Caso base )

n! = n*(n-1)! c.c. ( Caso recursivo )


Recursão

Exemplo: Função que calcula fatorial de n

Definição do fatorial Inteiro fatorial( Inteiro n )


Início
n! = 1 se n ∈ [0,1] ( Caso base ) Se ( n == 0 I n == 1 )
Retorne 1
n! = n*(n-1)! c.c. ( Caso recursivo ) Senão
Retorne n * fatorial( n-1 )
Fim Se
Fim
Obrigado pela sua atenção!

Espero que ter ajudado na compreensão dos principais conceitos de lógica de


programação.

Dúvidas ou sugestões?

ebsouza07@gmail.com