Você está na página 1de 140

Disciplina: Lógica de Programação I

Lógica de Programação é uma das disciplinas que


compõem os cursos Engenharias. Nesta disciplina,
você aprenderá os fundamentos da lógica de
programação, que é a base da programação de
computadores. Terá a oportunidade de conhecer
novos colegas e trocar informações importantes para
sua formação.
1. Expositiva.
2. Resolução de exercícios.
3. Aula prática: Laboratório.
4. Aula de revisão, etc.
• Critérios de avaliação.
– V1
– V2
– Trabalhos
Pra que aprender isso?

-Criar sistemas eletrônicos, automação,


desenvolvimento de sistemas.
-Pesquisa Operacional.
-Pesquisa Cientifica.
-Automação de Cálculos Estruturais.
-Estimação de parâmetros.
-Adequação de sistemas.
Sou capaz de aprender isso?

-Procedimentos.
1. Leitura dos slides.
2. Anotar comandos.
3. Treinar os comandos.
4. Resolver exercícios.
5. Tirar dúvida.
Aula 1 - O que é Lógica?
• Objetivos:
– Compreender um pouco sobre lógica
– Diferenciar tipos de lógica
– Entender o conceito de Programação
Aula 1 - O que é Lógica?
• Lógica é o estudo das deduções (raciocínios)
válidas.
– Pensamento.
– Raciocínio.

Exemplos de pensamentos lógicos!!!


Aula 1 - O que é Lógica?
• Segundo o dicionário Aurélio, a palavra lógica
pode ser definida de diferentes formas, dentre
elas destacam-se:
Na tradição clássica, aristotélico-tomista, conjunto de
estudos que visam a determinar os processos intelectuais
que são condição geral do conhecimento verdadeiro. Ou
ainda, como sendo um conjunto de estudos tendentes a
expressar em linguagem matemática as estruturas e
operações do pensamento, deduzindo-as de número
reduzido de axiomas, com a intenção de criar uma
linguagem rigorosa, adequada ao pensamento científico tal
como o concebe a tradição empírico-positivista; lógica
matemática, lógica simbólica.
Aula 1 - O que é Lógica?
• Historicamente
• Lógica é oriunda da Grécia, em que os três
mestres da filosofia ocidental, Sócrates, Platão e
Aristóteles , deram os primeiros passos para a
busca do conhecimento por meio da
investigação científica da lógica. Inicialmente,
Sócrates desafiou seus inimigos políticos em
público para mostrar que ninguém, nem ele
mesmo, eram portadores de dotes para julgar o
certo ou o errado; sendo inclusive condenado à
morte pelos seus oponentes.
Aula 1 - O que é Lógica?
• Lógica Moderna
– A Lógica moderna e contemporânea usa os mesmos
métodos usados em Matemática, e por isso também é
chamada de Lógica Simbólica. Por outro lado, a própria
Matemática faz uso intenso da Lógica em suas
demonstrações e em seus fundamentos.
– Grande parte da Informática e da Ciência da Computação
utilizam a Lógica. Como a própria noção de máquina de
computar é um conceito lógico, expresso por meio das
máquinas de Turing criadas por Alan Turing3 , o
desenvolvimento técnico não diminuiu a necessidade de
reflexão filosófica a respeito dos métodos e da natureza da
lógica e a transformou em paradigma para certas áreas da
Filosofia, como a Filosofia Analítica.
Aula 1 - O que é Lógica?
• Lógica Contemporânea
– A Lógica contemporânea converteu-se em uma
disciplina independente e múltipla que se
desenvolve em conexão com a Filosofia, a
Linguística, a Matemática e as Ciências da
Computação.
Aula 1 - O que é Programação?
• A programação é a arte de fazer com que o
computador faça exatamente o que desejamos
que ele faça.
• Ao nível mais simples consistirá em enviar uma
sequência de comandos para um computador
por forma a atingir um determinado objetivo.
Ou que o computador execute uma
determinada função.
Aula 1 - O que é Linguagem de
Programação?
• Linguagens de programação permitem-nos comunicar com
o computador de uma forma mais próxima da linguagem
humana do que da linguagem do computador
• É um conjunto de regras sintáticas e semânticas usadas para
definir um programa de computador.
• Permite que um programador especifique precisamente
sobre quais dados um computador vai atuar, como estes
dados serão armazenados ou transmitidos e quais ações
devem ser tomadas sob várias circunstâncias. Linguagens de
programação podem ser usadas para
expressar algoritmos com precisão.
Aula 1 – Tipos de Linguagem de
Programação
• As linguagens de programação podem ser classificadas e sub-classificadas
de várias formas.
– Linguagens aplicativas, ou de aplicação
– Linguagens concorrentes, distribuídas e paralelas
– Linguagens de fluxo de dados
– Linguagens de projeto
– Linguagens extensíveis
– Linguagens de montagem e de macro
– Linguagens de microprogramação
– Linguagens não determinísticas
– Linguagens não procedurais
– Linguagens orientadas a objeto
– Linguagens de aplicação especializada
– Linguagens de altíssimo nível
Aula 1 – Lista de linguagens

C Ruby
Java Visual Basic .NET
Objective-C Transact-SQL
C++ Lisp
PHP Pascal
C♯ Bash
Visual Basic PL/SQL
Python Delphi / Object Pascal
Perl Ada
JavaScript MATLAB
Aula 1 -Informática
• Objetivos:
– Definir informática
– Conceituar Sistema Computacional
– Entender formas de armazenamento de dados
– Diferenciar tipos de softwares
Aula 1 – Informática
Revisão da Aula anterior segundo
Aula 1 – Informática
InforMática

Informação
DADOS->INFORMAÇÃO
CODIFICAÇÃO->ARMAZENAMENTO
Automática
SISTEMA COMPUTACIONAL
Aula 1 – Sistema Computacional

FISICA LÓGICA
HARDWARE SOFTWARE
Aula 1 – Sistema Computacional
Aula 1 – Informática
Sistema Computacional

Geração Armazenamento
Zero Mecânico
1° Geração Válvulas
2° Geração Transistores
3° Geração CHIPS – pastilha de
silício
4° Geração VLSI
Aula 1 – Informática
Aula 1 – Armazenamento de dados
Aula 1 – Unidade de armazenamento
de dados
Aula 1 – Camadas de Software
Aula 1 – Tipos de Software
• Sistema Operacional
• Bios/Setup
• Firmware
Básicos • IDE

• Pacote Office
• AutoCad
• E-mail
Aplicativo • Simulação
Aula 2 - Conceitos básicos para a
programação de computadores
• Objetivos:
– Definir algoritmos
– Identificar as características de um algoritmo
– Saber representar algoritmos
– Representar problemas com algoritmos
Aula 2 - Conceitos básicos para a
programação de computadores
• Tópicos:
– Algoritmo
– Representação
– Estruturas de Algoritmos
• Sequencial
• Condicional
• Repetição
Aula 2 - Conceitos básicos para a
programação de computadores
– Algoritmo
Algoritmo é a especificação da sequência ordenada
de passos que deve ser seguida para a solução de
um problema ou para a realização de uma tarefa,
garantindo a sua repetitividade.

Representação de um método!
Aula 2 – Características desejáveis de
um algoritmo
• legível: o algoritmo deve ser compreensível até por um leigo
• de alto nível: o algoritmo deve poder ser traduzido em
qualquer linguagem de programação, ele não deve fazer uso
de conhecimentos técnicos relativos a um determinado
programa ou a um sistema operacional dado.
• preciso: cada elemento do algoritmo não deve ser confuso,
por isso é importante eliminar qualquer ambiguidade.
• conciso: um algoritmo não deve exceder uma página. Se for
o caso, é preciso decompor o problema em vários
subproblemas
Aula 2 - Características inerentes de
um algoritmo
• Características inerentes de um algoritmo
– Sequência de passos
– Trata entradas e saídas
– Utiliza Lógica
– Objetivo definido
– Finito
Aula 2 – Representação de Algoritmos
– Representação
• Narrativa
• Fluxograma
• Pseudocódigo
• Diagrama de Chappin
• Linguagem de programação
Aula 2 - Representação narrativa
Aula 2 - Representação narrativa
Aula 2 – Atividade de casa

Representar um algoritmo na forma


narrativa para
resolver o problema abaixo:
Realizar o empréstimo de um livro na biblioteca.
Aula 2 – Representação em
pseudocódigo
• Algoritmo Recepcionista de Cinema
• Inicio
• 1 – Solicitar ao cliente o bilhete do filme.
• 2 – Conferir a data e o horário do filme no bilhete.
• Se data/hora atual > data/hora do filme + 30 minutos Então
• 3 – Informar ao cliente que o tempo limite para entrada foi excedido.
• 4 – Não permitir a entrada.
• Senão Se data/hora atual < data/hora do filme – 30 minutos Então
• 5 – Informar ao cliente que a sala do filme ainda não foi liberada para entrada.
• 6 – Não permitir a entrada.
• Senão
• 7 – Permitir a entrada.
• 8 – Indicar ao cliente onde fica a sala do filme.
• Fim-Se
• Fim
Aula 2 – Representação em
pseudocódigo
• Outro exemplo é o pseudocódigo de um algoritmo que
recebe um valor inteiro, acresce duas unidades a este,
e exibe o resultado desta manipulação.
algoritmo “exemplo 2”
variaveis numero, resposta: inteiro
escreva (“Digite um número inteiro: ”)
leia (numero)
resposta <- numero+2
escreva (“Resultado (número + 2): ”, resposta)
fimalgoritmo
Aula 2 – Atividade de casa

Representar um algoritmo na forma de pseudocódigo para


resolver os problemas abaixo:
Construa um pseudocódigo para representar um
algoritmo que efetue a multiplicação de dois inteiros quaisquer.

Calcular a área de um trapézio, dado por:


A = (B+b)*h/2

Calcular o IMC de uma pessoa, dado por:


IMC = PESO/(ALTURA*ALTURA)
Aula 2 – Representação em fluxograma
Aula 2 – Representação em fluxograma
Aula 2 – Representação em fluxograma
Aula 2 – Estruturas de Algoritmo
– Estruturas
• Sequencial
• Condicional
• Repetição
Aula 2 – Atividade de casa

Representar um algoritmo na forma de fluxograma para


resolver o problema abaixo:
Construa um pseudocódigo para representar um
algoritmo que efetue a multiplicação de dois inteiros quaisquer.
Aula 3 -Estrutura Sequencial
• Objetivos:
– Conhecer sobre a Linguagem C
– Estrutura de um programa em C
– Definir variáveis
– Utilizar bibliotecas da Linguagem C
– Representar um algoritmo sequencial em C.
Aula 3 -Estrutura Sequencial
Aula 3 -Estrutura Sequencial
• Linguagem C
– O C nasceu na década de 70. Seu inventor, Dennis
Ritchie, implementou-o pela primeira vez usando
um DEC PDP-11 rodando o sistema operacional
UNIX. O C é derivado de uma outra linguagem: o
B, criado por Ken Thompson. O B, por sua vez,
veio da linguagem BCPL, inventada por Martin
Richards.
Aula 3 -Estrutura Sequencial
• Estrutura de um programa em C
Aula 3 -Estrutura Sequencial
• Variáveis do programa
– Nomes dos espaços da memória para guardar
valores.

– MEMÓRIA RAM

A soma
idade
nome
Aula 3 -Estrutura Sequencial
Palavras reservadas
Aula 3 -Estrutura Sequencial
• Declaração de variáveis
– Processo pelo qual reserva um espaço na
memória para guardar os dados do programa.

• TIPO NOME;

– O tipo de uma variável informa a quantidade de


memória, em bytes, que a variável ocupará e a
forma como um valor deverá ser armazenado;
Aula 3 -Estrutura Sequencial
• Há cinco tipos básicos de dados em C:
– char
– int
– float
– double
– void
Aula 3 -Estrutura Sequencial

Números
Caracteres Inteiros
Símbolos INT
CHAR

Números
Reais
FLOAT
DOUBLE
Aula 3 -Estrutura Sequencial
– Exercícios
Aula 3 -Estrutura Sequencial
• Exercícios
– 1- Declare as seguintes variáveis em um programa:
letra = C numero1 = 13 numero2 = 3.56 pi=3,1415 mol = 6×10²³
– 2- Diga se as seguintes variáveis são válidas:
a) linguagem
B)progRAMA
c)ufu1234
d)int
e)float4
f)2012
– 3- Qual a estrutura básica da declaração de uma variável?
a)tipo valor = variável!
b)valor tipo = variável;;
c)tipo variável == valor;
d)tipo variável = valor;
e)main tipo variável <- valor.
Aula 3 -Estrutura Sequencial
• Exercício
1- Declare as variáveis em um programa para
armazenar os valores da tabela abaixo
Aula 3 -Estrutura Sequencial
• Objetivos:
– Comandos de entrada e saída
– Utilizar operadores
• Atribuição
• Aritméticos
– Representar um algoritmo sequencial em C.
Aula 3 -Estrutura Sequencial
• Algumas bibliotecas da Linguagem C
Biblioteca Padrão
#include <stdio.h>
no início do programa.
Saída: A Função printf
Entrada: A função Scanf
Aula 3 -Estrutura Sequencial
#include <stdio.h>
Saída: A Função printf
int printf(controle, arg1, arg2, ...);

Ex: printf(“Digite seu nome”);


Ex: printf(“A media é igual a %f”,media);
Aula 3 -Estrutura Sequencial
Aula 3 -Estrutura Sequencial
#include <stdio.h>
Entrada: A Função scanf
scanf(controle, arg1, arg2, ...);

Ex: scanf(“%d”,&idade);
Ex: scanf(“%c”,&letradigitada);
Ex: scanf(“%f”,&nota);
Aula 3 -Estrutura Sequencial
• Representando um problema na Linguagem C
algoritmo “exemplo 2”
variaveis numero, resposta: inteiro
escreva (“Digite um número inteiro: ”)
leia (numero)
resposta <- numero+2
escreva (“Resultado (número + 2): ”, resposta)
fimalgoritmo

USANDO A LINGUAGEM C
INT MAIN()
{

}
Aula 3 -Estrutura Sequencial
• Declaração ATRIBUIÇÃO DIRETA
int idade,ano; idade = 20;
float peso,altura; peso = 33.5;
float preco; O operador de atribuição = indica que o
resultado da expressão à direita do operador
será atribuído à variável.

ATRIBUIÇÃO INDIRETA
printf(“Digite o preço”);
scanf(“%f”,&preco);
Aula 3 -Estrutura Sequencial
• Operadores aritméticos
Aula 3 -Estrutura Sequencial
– Exercícios
• Qual o resultado das variáveis x, y e z depois da
seguinte sequência de operações:

– int x, y, z;
– x = y = 10;
– z = x++;
– x = -x;
– y++;
– x = x + y – z--;
Aula 3 -Estrutura Sequencial
– Exercícios
• Escreva um programa que declare variáveis do tipo int, char e
float, inicialize-as, e imprima os seus valores.
• Escreva um programa que leia 3 números reais e imprima a média
aritmética destes números.
• Escreva um programa que pegue o valor de uma conta de
restaurante e imprima o valor total a ser pago, considerando que o
restaurante cobra 10% de taxa para os atendentes.
• Faça um programa que peça ao usuário a quilometragem atual, a
quilometragem anterior, os litros consumidos e informe a taxa de
consumo (quilômetros por litro) de um automóvel.
• Escreva um programa que converta uma temperatura de Farenheit
para Celsius.
• Escreva um programa que, dado o perímetro de um círculo, calcule
sua área.
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Aula 3 –Aula Laboratório
Pratica 1
• Procedimentos
– Baixar os slides e seguir instruções da Aula 3-
laboratório 1
– Digitar o código do cálculo do IMC
– Executar o programa
Pratica 2
• Procedimentos
– Crie um projeto no Dev.
– Elabore um algoritmo
para calcular a área de
um trapézio: A =
((B+b)*h)/2;
– Execute o programa
Pratica 3
• Procedimentos
– Crie um projeto no Dev.
– Elabore um algoritmo para
calcular a média de um
aluno e imprimir a
mensagem aprovado ou
aprovado.
• Se a media > = 7
– Aprovado
• Senão
– Reprovado
– Execute o programa
Solução da pratica
Aula 4 - Estrutura Condicional
• Tópicos:
– Introdução
– Estruturas Simples
– Estruturas Compostas
Aula 4 - Estrutura Condicional
Tomar uma decisão!
Aula 4 - Estrutura Condicional
• Definição
– Estruturas que permitem a escolha da execução de
um trecho de código de acordo com a condição.
Aula 4 - Estrutura Condicional
• A ESTRUTURA IF/ELSE:
– Estruturas que permitem a escolha da execução de
um trecho de código de acordo com a condição.
Aula 4 - Estrutura Condicional
• A ESTRUTURA IF/ELSE:
– Existem quatro maneiras de usar essa estrutura
condicional:
• If sem o else
• If com o else
• If com else aninhado
• If com else if
Aula 4 - Estrutura Condicional
• Exemplos
Aula 4 - Estrutura Condicional
Aula 4 - Estrutura Condicional
• Operadores relacionais
Aula 4 - Estrutura Condicional
• Operadores lógicos
Aula 5 - Estrutura de Repetição
• Tópicos:
– Introdução
– PARA
– ENQUANTO
– FAÇA/ENQUANTO
Lógica de
programação

• ESTRUTURAS DE REPETIÇÃO
– Se uma ação se repete em um algoritmo, em vez de
escrevê-la várias vezes, em certos casos podemos
resumir anotando uma vez só e solicitando que ela se
repita, usando uma das estruturas de repetição.
– Podemos executar uma ação (ou um conjunto de
ações) um número definido ou indefinido de vezes,
ou enquanto um estado permanecer ou até que um
estado seja atingido.
– As principais estruturas de repetição são:
• PARA...ATÉ...REPETIR
• ENQUANTO...REPETIR
• REPETIR...ENQUANTO
104
Lógica de
programação

• ESTRUTURAS DE REPETIÇÃO

1) Primeiro:
2) Último:
3) Passo:

105
Lógica de
programação

• ESTRUTURAS DE REPETIÇÃO

1) Primeiro:
2) Último:
3) Passo:
Lógica de
programação

• ESTRUTURAS DE REPETIÇÃO

1) Primeiro:
2) Último:
3) Passo:
Lógica de
programação

• ESTRUTURAS DE REPETIÇÃO

1) Primeiro:
2) Último:
3) Passo:
Lógica de
programação

• ESTRUTURAS DE REPETIÇÃO

1) Primeiro:
2) Último:
3) Passo:
Fluxograma de uma estrutura de repetição: Lógica de
programação

INÍCIO

CONT = 1
Neste ponto do
algoritmo podemos
incluir qualquer
conjunto de instruções
CONT = CONT + 1 que quisermos repetir
10 vezes.

Sim
CONT <= 10?

Não

FIM

110
Lógica de
programação

Estruturas de repetição
Enquanto...Repetir condição
F

Enquanto (condição) repetir V

<instruções> instrução

Repetir...Enquanto
instrução
Repetir <instruções>
enquanto (condição)
F
condição

Para...até...repetir V

Para <variavel> = <inicio> até <fim> repetir


<instruções>

111
Lógica de
programação

– Até agora para vários valores informados pelo


usuário líamos cada valor de forma separada
– Por exemplo, no algoritmo para o cálculo da média
de quatro números, líamos 4 valores em 4 variáveis
diferentes.

Mas também poderíamos:


• ler um valor para 1 variável e repetir isso 4 vezes,
adicionando cada valor lido ao total em uma outra
variável, a cada repetição.
• Após as 4 repetições, a soma dos 4 números estaria
acumulada na outra variável, bastando uma instrução para
dividi-la por 4 e assim obter a média.
112
Exemplo Para
• Ler 50 números fornecidos pelo usuário e calcular e exibir a média.

Pseudocódigo:
1. Início
2. Soma = 0 <<< o acumulador precisa ter um valor inicial
3. Para cont =1 até 50 repetir
3.1 ler num
3.2 soma = soma + num
4. Media = soma / cont
5. Mostrar media
6. Fim

113
Lógica de
programação

PARA...ATÉ...REPETIR
– Formato:
Para <variável> = <valor inicial> até <valor final> repetir
<ações>
• Significado: A <variável> é inicializada com <valor inicial>.
Após cada execução das <ações>, é somado 1 à <variável> e
repete-se as <ações>, continuando assim até que a
<variável> atinja o <valor final>.
• Esta estrutura de repetição cria um contador automático,
que nós não precisamos mandar incrementar.
• Ao usar esta estrutura já está subentendido que a
<variável> inicia com <valor inicial> e é incrementada a cada
ciclo (podendo-se inclusive aproveitar seu valor dentro do
ciclo), e que as <ações> serão repetidas até que a <variável>
tenha o <valor final>.
114
Lógica de
programação

• Exemplo da estrutura PARA...ATÉ...REPETIR:


“Mostrar os quadrados dos inteiros de 3 a 11.”
– Pseudocódigo:
Para CONT = 3 até 11 repetir Isto será repetido 9 vezes.
Mostrar (CONT *CONT)

– Usamos esta estrutura quando sabemos quantas


vezes temos de repetir certas ações, mesmo que o
número de vezes só seja conhecido durante a
execução. Por exemplo:
“Perguntar ao usuário de quantos valores ele quer
calcular a média. Ler os números e calcular a média.”
115
E se eu quisesse calcular a média de N números? Lógica de
programação

– Para esse problema construímos um algoritmo que será genérico, ou seja, que
poderá ser usado para calcular a média de quantos números se quiser!

– Pseudocódigo:
1- Início
2- Mostrar “De quantos valores você quer calcular a média?”
3- Ler QUANT (aqui se descobre quantas repetições)
4- SOMA = 0
5- Para CONT = 1 até QUANT repetir
5.1- Ler N (aqui é lido cada número, um em cada ciclo)
5.2- SOMA = SOMA + N (aqui os valores lidos são acumulados)
6- MEDIA = SOMA / QUANT (isto está fora do loop)
7- Mostrar MEDIA
8- Fim

116

Exercício
Faça um algoritmo para calcular e escrever
o valor de S:
1 3 5 7 99
S      ... 
1 2 3 4 50

117
Exemplo de solução
1. Início
2. S=0
3. Para I=1 ate’ 50 repetir
3.1 S=S+(I*2-1)/I
4. Mostrar S
5. Fim

118
Exercício
Faça um algoritmo para calcular os 20
primeiros termos da série de Fibonacci:

0, 1, 1, 2, 3, 5, 8, 13, ….
com F0=0 e F1=1

119
Exemplo de solução
1. Início
2. Mostrar 0
3. Mostrar 1
4. n_2=0
5. n_1=1
6. Para I=3 até 20 repetir
6.1 n=n_1 + n_2
6.2 mostrar n
6.3 n_2=n_1
6.4 n_1=n
7. Fim

120
Exercício
Faça um algoritmo para calcular a soma dos
números primos menores que 100

Faça um teste de mesa para testar a sua solução

121
Exemplo de solução
1. Início
2. Para I=1 até 99 repetir
2.1 eprimo=1
2.2 para J=2 até I-1 repetir
2.2.1 se I%j=0 então eprimo=0
2.3 se eprimo=1 então mostrar I
3. Fim

122
Estruturas de repetição em C

123
Estrutura de repetição: comando for

• Comando for
for (var=valor inicial; condição; incremento/decremento)
comando;

Exemplo:
for (cont=3; cont<=11; cont++)
printf (“%d”,cont);
for (var=valor inicial; condição; incremento/decremento)
{
comando1;
comando2;
comando3;
}

124
Comando for
for (var=valor inicial; condição; inc/dec)
comando1;

Não esquecer dos parênteses

O comando1 será executado enquanto a condição for verdadeira

O incremento ou decremento é executado automaticamente após a execução do


comando1

125
Exercício

Escrever um algoritmo que lê 5 valores, e conta quantos destes valores são


negativos, escrevendo esta informação.

#include <stdio.h>
#include <stdlib.h>
main(){
int numero, cont, neg=0;
for (cont=0; cont<5; cont++) {
printf ("\nDigite um numero inteiro: ");
scanf ("%d", &numero);
if (numero<0) neg=neg+1;
}
printf ("\nO numero de valores negativos e’ %d\n", neg);
system("pause");
}

126
Cuidado!!!

• Se o valor da variável de controle do comando for for


alterado explicitamente dentro do bloco de repetição …
• Exemplo: saída:
#include <stdio.h> 1
#include <stdlib.h> 2
main(){ 3
int I; 4
for (I=1; I<=10; I++){
5
printf (“%d\n",I);
if (I==5) I=8; 9
} 10
system("pause"); Press any key to continue
} . ..

127
Lembre-se!!!
Qual o valor da variável de controle do for após a execução do
comando for? O valor que foi testado e não passou na condição.
Exemplo: saída:

#include <stdio.h> 1
#include <stdlib.h> 2
main(){ 3
int cont; 4
for (cont=1; cont<=10; cont=++){ 5
printf ("%d\n", cont); 6
} 7
printf("valor apos o FOR: %d\n",cont); 8
system("pause"); 9
} 10
valor apos o FOR: 11
Press any key to continue...

128
Só use quando estritamente necessário:
E para forçar o término da repetição? Use um break.

Exemplo : saída:

#include <stdio.h> 1
#include <stdlib.h> 2
main(){ 3
int I; 4
for (I=1; I<=10; I=I+1){ 5
printf ("%d\n",I); apos o FOR: 5
if (I==5) break; Press any key to continue...
}
printf(“apos o FOR: %d\n",I);
system("pause"); Atenção para o valor de
} saída da variável de
controle

129
Cuidado!!
• Faça sempre um teste de mesa com os
valores inicial e final do loop do comando
for, pois a maioria dos erros são na primeira
ou na última execução do laço.
• Erros comuns:
– Executar o laço (repetição) uma vez a mais ou a
menos que o desejado
– Atribuir o valor inicial de alguma variável
dentro do laço, quando deveria ser fora
– Não atribuir o valor inicial de uma variável
(principalmente em for s aninhados)

130
Construção de Algoritmos para
resolver sequências
• Identificar o número de termos
• Identificar o primeiro e último termo.
• Escolher uma variável para controle.
• Resolver a expressão da sequência, que pode
ser um somatório.
• Exibir o valor final da sequência.

131
WHILE

• INICIALIZAÇÃO
• WHILE( CONDIÇÃO ){
– COMANDO
– PASSO
• }

132
DO/WHILE

• INICIALIZAÇÃO
• DO{
– COMANDO
– PASSO
• }WHILE( CONDIÇÃO );

133
Exercícios

• Faça um programa para calcular os n primeiros


termos da série de Fibonacci (1, 1, 2, 3, 5, 8,
13, 21, 34, 55, 89, …)

• Faça um programa para calcular os números


primos menores que n

134
Exercícios
Faça um programa para calcular e escrever o valor de S:
S  1  2  3  4  5  ...

S  2  4  6  8  10  ...

1 3 5 7 99
S     ... 
1 2 3 4 50

1 2 3 4 5 6
S        ...
2 3 4 5 6 7

2! 3! 4! 5!
S 1
 2  3  4  ...
2 3 4 5
135
Aula 5 – Tipos Indexados
• Tópicos:
– Introdução
– Índices
– Vetores
– Declaração de vetores
– Escrevendo dados em vetores
– Lendo dados em vetores
Aula 5 – Tipos Indexados
• Tópicos:
– Criação de espaços na memória para armazenar
diversos valores do mesmo tipo.
Aula 5 – Tipos Indexados
• Declaração
Aula 5 – Tipos Indexados
• Atribuindo valores
– Direta

– Indireta
Aula 5 – Tipos Indexados
• Percorrendo os valores

for(indice = 0 ; indice < tamanho ; indice++)


{
printf(“\n %d”, );
}