Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

95
Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello http://www.joinville.udesc.br/portal/ professores/flavio/

Transcript of Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Page 1: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

RevisãoLPG-I – Revisão de ICC

Prof. Flavio Marcellohttp://www.joinville.udesc.br/portal/professores/flavio/

Page 2: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Sumário - Revisão

– Representação – Descrição Narrativa, Fluxograma, Algoritmo (Portugol)

– Variável– Expressões aritméticas– Comando de atribuição– Comandos de entrada e saída

Page 3: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Sumário - Revisão cont. Etapas da Construção de Programas ALGORITMOS Apresentação das Estruturas de Algoritmos

– ESTRUTURA SEQÜÊNCIAL– ESTRUTURA CONDICIONAL– ESTRUTURA DE REPETIÇÃO– DADOS ESTRUTURADOS– Erros de Lógica e de Sintaxe

Page 4: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Representação de Algoritmos Descrição Narrativa:- algoritmos expressos em linguagem natural.- imprecisa e pouco usada.

Exemplo 01: Troca de pneu furado:1. Afrouxar ligeiramente as porcas;2. Suspender o carro;3. Retirar as porcas e o pneu;4. Colocar o pneu reserva;5. Apertar as porcas;6. Abaixar o carro;7. Dar o aperto final nas porcas.

Page 5: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Representação de Algoritmos

Fluxograma Convencional:- representação gráfica do algoritmo;- formas geométricas indicam ações;- precisa e popular.- auxilia a explicar a seqüência de

instruções em algoritmos e programas.

Page 6: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Representação de AlgoritmosNotação de um Fluxograma:

Início e fim

Entrada de dados

Saída de dados Decisão

Processamento

Page 7: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Representação de Algoritmos Exemplo de estruturas de controle usadas em

programação estruturada (Miyazawa, 2001:9)

Estrutura deControle Seqüencial

Estrutura deControle Condicional

Estrutura deControle Repetitiva

Page 8: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Representação de AlgoritmosExemplo: fluxograma para o cálculo da média de um aluno.

Início

N1, N2

Média=(N1+N2)/2

Média >=7

“Reprovado”

“Aprovado”

Falso

Verdadeiro

Fim

Page 9: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Etapas da Construção de Programas

Problema

Solução em Formade Algoritmo

Solução como umPrograma deComputador

Fase deresolução do

Problema

Fase daImplemen-

tação

PassoDifícil

Page 10: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

ALGORITMOSo Algoritmo: procedimento passo a passo para resolver um

problema, rica em detalhes; semelhante à forma de programas; e de fácil tradução para linguagem de programação.

o Pessoas tem inteligência e habilidade racional => fazem perguntas para se esclarecer.

o Computador não tem senso próprio => deve receber instruções explícitas (algoritmos, ou linguagem estruturada ou “portugol”;)

Page 11: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

ALGORITMOS Um algoritmo correto deve possuir 4

qualidades:1- O algoritmo deve ter um início

2- Cada passo do algoritmo deve ser uma instrução que possa ser realizada

3- A ordem dos passos deve ser precisamente determinada

4- O algoritmo deve ter um fim

Page 12: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Desenvolvimento do Algoritmo

Começamos com uma afirmação genérica da solução do problema e prosseguimos até o algoritmo final, aumentando sistematicamente o nível de detalhamento.

Page 13: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Como saber se já temos um nível suficiente de detalhes no algoritmo?

Isso depende do agente que irá executar o algoritmo

Os computadores têm um conjunto muito limitado de instruções e o algoritmo deve ser expresso nos termos dessas instruções.

Desenvolvimento do Algoritmo

Page 14: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS

Passo 1:Passo 1: ler cuidadosamente a especificação do problema até o final

Passo 2:Passo 2: se depois de ler várias vezes, ainda não entender o problema, pergunte ao professor até entender

Passo 3:Passo 3: levantar e analisar todas as saídas exigidas na especificação do problema

Passo 4:Passo 4: levantar e analisar todas as entradas citadas na especificação do problema

Page 15: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS

Passo 5: Formular um esboço geral do algoritmo, não se concentrando em detalhes (revisar mentalmente)

Passo 6: verificar se é necessário gerar valores internamente ao algoritmo e levantar as variáveis necessárias e os valores iniciais de cada uma (indicar o propósito)

Passo 7: levantar e analisar todas as transformações necessárias para, dadas as entradas e valores gerados internamente, produzir as saídas especificadas (mapeamento entrada saída)

Page 16: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Passo 8: testar cada passo do algoritmo, verificando se as transformações intermediárias executadas estão conduzindo aos objetivos desejados (utilizar, sempre que possível, valores de teste que permitam prever os resultados)

Passo 9: Retomar os passos individuais e prosseguir com o detalhamento (verificar se os novos passos executam a função original)

Passo 10: fazer uma reavaliação geral, elaborando o algoritmo através da integração das partes

METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS

Page 17: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

InícioTrocar Pneu

Fim

METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOSALGORITMO PARA TROCAR PNEU DE UM CARROALGORITMO PARA TROCAR PNEU DE UM CARRO

E se o estepe estiver vazio? Isto traz necessidade de uma decisão entre

dois caminhos.

Page 18: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Início se <o estepe está vazio> então chamar borracheiro senão mudar o pneu fim seFim

ESTRUTURA CONDICIONAL

Page 19: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Início se <o estepe está vazio> então chamar borracheiro senão mudar o pneu fim seFim

ESTRUTURA CONDICIONAL

A atividade de mudar o pneu pode ser mais detalhada

Page 20: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Início se <o estepe está vazio> então chamar borracheiro senão levantar o carro desparafusar a roda remover a roda colocar o estepe parafusar a roda abaixar o carro fim seFim

ESTRUTURA SEQUENCIAL

A atividade de desparafusar a roda pode ser mais detalhada

A atividade de parafusar a roda pode ser mais detalhada

Page 21: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Início se <o estepe está vazio> então chamar borracheiro senão levantar o carro desparafusar o 1o parafuso desparafusar o 2o parafuso desparafusar o 3o parafuso desparafusar o 4o parafuso remover a roda colocar o estepe parafusar o 1o parafuso parafusar o 2o parafuso parafusar o 3o parafuso parafusar o 4o parafuso abaixar o carro fim seFim

ESTRUTURA SEQUENCIAL

A repetição é inconveniente

A repetição é inconveniente

Page 22: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Início // Versão FINALse <o estepe está vazio> então chamar borracheirosenão levantar o carro enquanto <houver parafuso para desapertar> faça desparafusar a roda fim enquanto remover a roda colocar o estepe enquanto <houver parafuso para apertar> faça parafusar a roda fim do enquanto abaixar o carrofim se

Fim

ESTRUTURA DE REPETIÇÃO

Page 23: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos computacionais Estrutura geral de um algoritmo Classificação dos dados Variável Expressões aritméticas Comando de atribuição Comandos de entrada e saída Estrutura Seqüencial

Page 24: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos computacionaisForma geral de representação:

// Nome_do_algoritmo// Função :// Autor :// Data :// Seção de Declarações 

Bibliotecas<declaração_de_variáveis> // variáveis globais<subalgoritmos>

Início<declaração_de_variáveis> // variáveis locais<corpo_do_algoritmo>Fim

Page 25: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos computacionais

Um algoritmo computacional deve ser uma seqüência de instruções que deve manipular dados– Instruções: comandos que determinam a

forma pela qual os dados devem ser tratados– Dados: informações recolhidas/fornecidas por

diversos meios e que serão processadas pelo computador através das instruções

Page 26: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Classificação dos dados:– Dados numéricos: podem ser basicamente de

dois tipos:• Inteiros: não possuem partes decimais. Ex.: 27• Reais: possuem partes decimais. Ex: 213,53

Page 27: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

– Dados literais: conjunto de caracteres que pode ser formado por números, letras e símbolos especiais• Normalmente chamado de String• Ex.: “pitanga”

– Dados lógicos: utilizado para representar dois valores únicos (0 ou 1, falso ou verdadeiro )• Também conhecido como tipo booleano, em

referência à álgebra de Boole

Page 28: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

VariávelMatematicamente, variável é a representação

simbólica dos elementos de um certo conjuntoComputacionalmente, cada variável corresponde

a um endereço de memória, cujo conteúdo pode variar ao longo do tempo durante a execução do programa

Embora possa assumir vários valores, pode-se armazenar somente um de cada vez

Page 29: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Toda variável é diferenciado por um identificador.

Um identificador é formado por um ou mais caracteres, sendo que o primeiro caractere deve ser obrigatoriamente uma letra

Exemplo: nota, a, x, w, X25 (identificadores válidos)5B, X – Y, E(13) (identificadores não válidos)

Page 30: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Toda variável tem: um identificador (nome); tipo que vai armazenar; valor armazenado

Exemplo:nota numérico;nome literal;maior lógico;

Page 31: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Expressões aritméticasOperações cujos operadores são aritméticos e

cujos operandos são constantes ou variáveis numéricas

Operações aritméticas: Adição / Subtração Multiplicação / Divisão Potenciação / Radiciação

Page 32: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Expressões Lógicas Operações onde a execução de uma ação ou

seqüência de subações está sujeita a uma certa condição, representada através de uma expressão lógica

Operações lógicas: = (igual a) / (diferente) < (menor) / > (maior) (menor ou igual) / (maior ou igual)

Page 33: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Expressões LógicasOperadores lógicos:

e (conjunção)

ou (disjunção)

não (negação)

Page 34: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Comando de atribuiçãoComando que permite que seja atribuído um

determinado valor a uma variável

Denominado pelo símbolo Exemplo:

nota 10nome “Joao”

Page 35: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Comandos de entrada e saídaComandos que permitem a interação do usuário com o

programaComando de entrada

Leia - Este comando “Leia” fica aguardando que algum valor seja digitado e a tecla “enter” do computador seja pressionada. O valor digitado é atribuído à variável e é armazenada na memória do computador.

Comando de saídaEscreva - O conteúdo da memória é impresso no vídeo

(monitor do computador)

Page 36: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

Estrutura SeqüencialTodos os comandos que estão entre as palavras

Início e Fim devem ser executados de maneira seqüencial

Início comando 1 comando 2 . . comando nFim

Page 37: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos ComputacionaisExemplo: Faça um programa que leia 4

variáveis inteiras e as imprima na tela do computador.

Page 38: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Programa 01variáveis inteiras A, B, C, DInicio

Leia A (25)

Leia B (35)

Leia C (15)

Leia D (40)

A B C D? ? ? ?... ... ... ...25 ? ? ?25 35 ? ?25 35 15 ?25 35 15 40

Escreva A Escreva B Escreva C Escreva D

25 35 15 40

Fim

Mem

ória

Monitor

Page 39: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos computacionais ESTRUTURAS CONDICIONAIS

– Estrutura Condicional Simples– Estrutura Condicional Composta– Seleção entre Seqüências de Comandos

Page 40: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

ESTRUTURA CONDICIONAL SIMPLES ESTRUTURA CONDICIONAL COMPOSTA SELEÇÃO ENTRE SEQÜÊNCIAS DE

COMANDOS

São de 3 tipos

Estruturas de Condicionais

Page 41: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura Condicional Simples

Fluxograma

Comando1…

ComandoN

decisão .V..F.

Page 42: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

- Uma única condição, expressão lógica, é avaliada.- Se o resultado é verdadeiro (.V. ou .1. ou true) um

determinado conjunto de instruções é executado.- Sintaxe:

Estrutura Condicional Simples (Se)

se (<condição>) <comando>;

se (<condição>) { <comando_1>

<comando_N>

}

OU

Page 43: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura Condicional Simples Exemplo: Algoritmo que lê dois dados,

calcula a média e imprime o resultado.

Page 44: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Programa Cal_MédiaInicio Real NUM1, NUM2, Média; Leia (“%R”, &NUM1); (10 ) Leia (“%R”, &NUM2); (5 ) Média (NUM1 + NUM2) / 2; Se (Média >=7) Escreva (“Aprovado”); Se (Média < 7) Escreva (“Reprovado”);Fim

NUM1 NUM2 Media Media >= 7 Media < 7

? ? ? ? ?

... ... ... ... ...

10.0 ? ? ? ?

10.0 5.0 ? ? ?

10.0 5.0 7.5 ? ?

10.0 5.0 7.5 .V. ?

10.0 5.0 7.5 .V. .F.

Aprovado

Monitor

Mem

óriaVariáveis Condições

Page 45: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura Condicional Composta

Fluxograma

comando 1

decisão .V..F.

comando 2

Page 46: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Uma condição, expressão lógica, é avaliada. Se o resultado é verdadeiro (.V. ou .1. ou true) um

determinado conjunto de instruções é executado, Senão um outro conjunto de instruções será executado.

Sintaxe:

Estrutura Condicional Composta (Se … Senão)

se (condição) <comando_1>;

senão

<comando_2>;

se (condição) {

<comando_1>; …

<comando_N>;

}

senão {

<comando_2>; …

<comando_M>;

}

OU

Page 47: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Exemplo:Verifica Maioridade.

.F. .V.

Início

Idade

Idade>=18

“Menor deidade”

“Maior deidade”

Fim

Estrutura Condicional Composta

Page 48: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Programa MaioridadeInicio Inteiro Idade; Leia (“%I”, &Idade); (15 ) Se (Idade >=18) Escreva (“Maior de Idade”); Senão Escreva (“Menor de Idade”);Fim

Idade Idade >= 18? ?... ...15 ?15 .F.

Menor de Idade

Monitor

Mem

óriaVariáveis Condições

Page 49: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Exemplo:

Se (grau >= 90)

Escreva (“A”);

Senão

Se (grau >= 80)

Escreva (“B”);

Senão

Se (grau >= 70)

Escreva (“C”);

Senão

Se (grau >= 60)

Escreva (“D”);

Senão

Escreva (“F”);

Estruturas Condicionais Aninhadas

Page 50: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Fluxograma

seqüência de comandos 1

variável

valor 1 ….

seqüência de comandos N

valor N

seqüência de comandos padrão

valor valor

SELEÇÃO ENTRE SEQÜÊNCIAS DE COMANDO S – (Escolha)

Page 51: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

SELEÇÃO ENTRE SEQÜÊNCIAS DE COMANDO S – (Escolha)- Uma ou mais condições podem ser avaliadas e

podem ter um comando composto associado a cada uma das condições.

- Sintaxe:Escolha (<variável>) {

Caso <Valor_1> : <Comando_1>; Pare;Caso <Valor_2> : <Comando_2>; Pare;...Caso <Valor_N> : <Comando_N>; Pare;Padrão <Comando_Padrão>;

}

Page 52: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

SELEÇÃO ENTRE SEQÜÊNCIAS DE COMANDO S – (Escolha) Exemplo: Algoritmo que lê um dados entre

(0 e 2) e escreve uma mensagem na tela do computador conforme o valor lido, caso contrário escreve uma mensagem de exceção (Por ex: “Valor Inválido”).

Page 53: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

// Algoritmo Exemplo_Escolha

Inicio

Inteiro NUMERO;

Leia(“%I”, &NUMERO); (1 )

Escolha (NUMERO) {

Caso 0: Escreva(“Escolheu 0”);Pare;

Caso 1: Escreva(“Escolheu 1”);Pare;

Caso 2: Escreva(“Escolheu 2”);Pare;

Padrão: Escreva(“Valor Inválido”);

}

Fim

Numero Escolha(Numero)

? ?... ...1 ?1 1

Escolheu 1

Monitor

Variáveis Expressão

Page 54: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos computacionais ESTRUTURA DE REPETIÇÃO

– Repetição com Teste no Início– Repetição com Teste no Final– Repetição Contada

Page 55: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura de Repetição

Permite que uma seqüência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita.

São de 3 Tipos: Repetição com Teste no Início Repetição com Teste no Final Repetição Contada

Page 56: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura com Teste no Início

condição.V.

.F.

Fluxograma

Page 57: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

A variável de controle é iniciada antes do Enquanto; A variável de controle é incrementada dentro do Enquanto. Enquanto o resultado da condição é verdadeiro (.V. ou .1. ou

true) executa repetidamente um conjunto de instruções.

Sintaxe:

Estrutura com Teste no Início (Enquanto)

Enquanto (<condição>) {<Comando_1>;

...<Comando_N>;

} Se no primeiro teste da condição resultado for FALSO, os

comandos dentro do loop NÃO serão executados NEM uma vez.

Loop

Page 58: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura com Teste no Início (Enquanto)

Exemplo 1: Encontrar o menor dentre um conjunto de 05 valores digitados.

Page 59: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

// ALGORITMO EncontraMenor_em5

Inteiro qtdenumlidos, num, menor;

INICIO

Escreva (“Algoritmo Encontrar Menor Valor num conjunto de 05 valores”);

Escreva (“Digite 1º Valor: ”); Leia (“%I”, &num); menor num;

qtdenumlidos 1;

ENQUANTO (qtdenumlidos < 5) {

Escreva (“Digite novo Valor: ”);

Leia (“%I”, &num);

se (num < menor)

menor num;

qtdenumlidos qtdenumlidos +1;

}

Escreva (“Menor Valor Encontrado: %I ”, menor);

FIM.

A variável de controledeve ter um valor conhecido.

Então ela foi inicializada antes.

A variável de controle deve ter seu valor modificado

dentro do “laço”.Neste caso a variável foi incrementa em 1

Page 60: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Exemplo 2: Desenvolver algorítmo para ler um conjunto de valores correspondentes aos pontos que alunos obtiveram em um teste.

Quando o valor fornecido for um número negativo, isto é um sinal de que não existem mais pontos para serem lidos.

Contar quantos alunos fizeram o teste; Escrever o media de pontos de alunos.

Estrutura com Teste no Início (Enquanto)

Page 61: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

// Algoritmo Contagem_Pontos_Alunos

Inteiro PONTOS_Teste;

Real SOMA_Ptos, NUM_Alunos;

Inicio

Escreva (“Algoritmo Contagem de Pontos dos Alunos”);

// Variáveis que acumulam somas/quantidades ou contam algo,

// sempre devem ser inicializadas!!!

NUM_Alunos = 0; SOMA_Ptos = 0;

Escreva ("PONTOS: "); Leia ("%R", &PONTOS_Teste);

Enquanto (PONTOS_Teste > 0) {

NUM_Alunos = NUM_Alunos + 1;

SOMA_Ptos = SOMA_Ptos + PONTOS_Teste;

Escreva ("PONTOS: ");

Leia ("%R", &PONTOS_Teste);

}

Escreva ("TOTAL DE ALUNOS: %i ", NUM_Alunos);

Se (NUM_Alunos > 0)

Escreva ("Media de Pontos: %R ", SOMA_Ptos / NUM_Alunos);

FIM.

NUM_Alunos NUM_Alunos dever ser zerado antes do Enquanto

e então incrementado em 1 dentro do

Laço de repetição

NUM_Alunos NUM_Alunos dever ser zerado antes do Enquanto

e então incrementado em 1 dentro do

Laço de repetição

Page 62: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura com Teste no Final

condição.F.

.V.

Fluxograma

...

C1

C2

Cn

Page 63: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Faça {<Comando_1>;...<Comando_N>;

}Enquanto (<condição>);

Estrutura com Teste no Final (Faça … Enquanto)

Semelhante ao ENQUANTO, porém, a condição é testada ao final do laço, então os comandos dentro do laço são executados pelo menos 1 vez.

Enquanto que o resultado da condição for verdadeiro (.V. ou .1. ou true) executa-se um conjunto de instruções.

Sintaxe:

Page 64: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Exemplo 1: Desenvolver algoritmo que permita a leitura de numeros positivos e acumule seu somatório, imprimindo o resultado no final.

Estrutura com Teste no Final (Faça … Enquanto)

Page 65: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

//ALGORITMO SomaPositivos

Inteiro numero, soma;

Inicio

soma 0;

Escreva ("Programa para somar N valores positivos");

Faça {

Escreva ("Digite um valor: ");

Leia ("%I", &numero);

se (numero > 0)

soma soma + numero;

}

Enquanto (numero > 0);

Escreva ("Soma dos Valores: %I", soma);

Fim

Page 66: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Exemplo 2: Desenvolver um algoritmo para escrever os 05 primeiros múltiplos de 13.

Estrutura com Teste no Final (Faça … Enquanto)

Page 67: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

//ALGORITMO Azarão

Inteiro num, cont, vezes;

INICIO

vezes 5;

num 13;

cont 0;

Faça {

Escreva ("%I ", num);

num num +13;

cont cont +1;

}

Enquanto (cont < vezes);

FIM

num cont vezes cont < vezes

? ? ? ?

... ... ... ...

13 0 5 ?

26 1 5 .V.

39 2 5 .V.

52 3 5 .V.

65 4 5 .V.

78 5 5 .F.

1326395265

Monitor

Variáveis Condição

Loop

Loop

Page 68: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Estrutura de Repetição Contada

.V.

.F.

Fluxograma

Comando

Início , Cond., Incr.

Page 69: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

A variável de controle é iniciada da estrutura; A variável de controle é incrementada dentro da estrutura. Para o resultado da condição verdadeiro (.V. ou .1. ou true)

executa-se um conjunto de instruções. Então, neste tipo de estrutura manipulam-se

automaticamente todos os detalhes da repetição controlada por contador.

Sintaxe:

Estrutura de Repetição Contada (Para)

Para (<inicialização> ;<condição>; <incremento>) {<Comando_1>;

...<Comando_N>;

}

Page 70: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Exemplo 1: Desenvolver algoritmo que permita imprimir os números de 1 a 5.

Estrutura de Repetição Contada (Para)

Page 71: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

//Algoritmo Contar_de_1_5

Inicio

Inteiro cont;

Para (cont 1; cont < = 5; cont cont +1) {

Escreva (“%I”, cont);

}

Fim

cont cont <= 5

? ?

... ...

1 ?

1 .V.

2 .V.

2 .V.

... ...

6 .F.

12345 M

onitor

Condição

Loop

Passo1 - Inicializa a variável de controle.

Passo2 - Testa a condição, de for verdadeira executa o conjunto de instruções, caso contrário encerra loop.

Passo3 - Incrementa variável de controle; retorna ao Passo2.

Page 72: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Comparativo: (Para) X (Enquanto)

Para Enquanto Inteiro i, N, Valor,Soma=0; Leia ("%i",&N); Para (i= 0; i<N; i++) { Leia ("%i", &Valor); Soma = Soma + Valor; }

Inteiro i, N, Valor,Soma=0;

Leia ("%i",&N); i = 0; Enquanto (i < N) { Leia ("%i", &Valor); Soma = Soma + Valor; i++ ; }

Page 73: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Qual Estrutura Usar ???Para Sabe-se o número de repetições

Enquanto Não sabe-se o número exato de repetições

Faça ... Enquanto

Não sabe-se o número de repetições, executando pelo menos uma vez.

Toda estrutura ENQUANTO pode ser convertida para Faça...Enquanto e vice-e-versa;

Toda estrutura PARA pode ser convertida em ENQUANTO, mas nem toda estrutura ENQUANTO pode ser convertida em PARA.

Page 74: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos computacionais Tipos de Dados Estruturados

– Variáveis Indexadas Unidimensionais (VETOR)– Variáveis Indexadas Bimensionais (MATRIZ)– Variáveis Indexadas Multidimensionais (pouco

freqüente)

Page 75: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

TIPOS DE DADOS ESTRUTURADOS - ANALOGIA

Vetor Matriz

Page 76: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Tipos de Dados Estruturados

O termo indexada provém da maneira como é feita a individualização dos elementos do conjunto de dados: por meio de índices.

Uma variável indexada pode ser definida como tendo um ou mais índices.– vetor, um único índice (unidimensionais)– matriz, dois índices (bidimensionais)

Page 77: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Variáveis Unidimencionais - VETOR Representa um conjunto de valores do

mesmo tipo (estrutura homogênea), referenciáveis pelo mesmo nome e individualizados entre si através de sua posição dentro desse conjunto (variáveis indexadas)

Sinônimos: variáveis indexadas, variáveis compostas, variáveis subscritas, arranjos, matrizes (unidimensionais), tabelas em memória ou arrays.

Page 78: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Variáveis Unidimencionais - VETOR Conceituando VETOR através de um

exemplo. Suponhamos o seguinte problema:

Calcular a média aritmética das notas de 3 alunos. Exibir a média e as notas que estão abaixo da média

Page 79: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Ler as três notas e armazenar na memória do computador, dando um nome diferente para cada nota.

Calcular a média aritmética das notas de 3 alunos. Exibir a média e as notas que estão abaixo da média

1a Solução (RUIM)

Page 80: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

// ALGORITMO Media_3NotasReal NOTA1, NOTA2, NOTA3, MEDIA;INICIO

Escreva (“Digite 3 notas:”);Leia (“%R %R %R”, &NOTA1, &NOTA2,

&NOTA3); MEDIA (NOTA1 + NOTA2 + NOTA3) / 3;Escreva (“Media: %R”, MEDIA);Se (NOTA1 < MEDIA)

Escreva (”%R Abaixo da média”, NOTA1);Se (NOTA2 < MEDIA) Escreva (”%R Abaixo da média”, NOTA2);Se (NOTA3 < MEDIA) Escreva (”%R Abaixo da média”, NOTA3);FIM

Programa funciona para três notas

E se fossem 1000 notas?Associarmos um nome para cada

nota?

IMPRATICÁVEL!IMPRATICÁVEL!

Page 81: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Associar o nome NOTA a um CONJUNTO seqüêncial de notas:

NOTA = {N0, N1, ... N999} índice 0 1 999

Calcular a média aritmética das notas de 1000 alunos. Exibir a média e as notas que estão abaixo da média

2a Solução: Vetor

Para referênciar ou selecionar uma nota específica usamos um índice.

Então:

- a 1a nota (N0) é indicada por NOTA[0]

- a 1000a (N999) nota é indicada por NOTA[999]

- uma ka nota é indicada por NOTA[k]

• Chamada VARIÁVEL INDEXADAVARIÁVEL INDEXADA

• Junta-se o nome dado ao conjunto seqüêncial com um índice.

Page 82: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETOR

Um VETOR é um conjunto ordenado que contém um número fixo de elementos.

Todos os elementos do vetor devem ser do mesmo tipo Armazenam diversos itens de uma só vez

– Significa dizer:• Em uma mesma estrutura de dados, é possível ter diversas

variáveis de tipos de dados simples agrupadas.

Page 83: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETORSintaxe:

tipo nome_vetor [tamanho];

onde: deve ser especificado o tipo dos elementos do conjunto, ou seja, Inteiro, Caracter, Real, etc. O nome_vetor é o nome da variável e em tamanho deve ser especificado o número máximo de elementos do conjunto.

Page 84: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETORExemplo:

Real VETOR[200];

Nome da Variável

Número máximo de elementos do conjunto

Tipo dos elementosdo conjunto

Page 85: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETOR

Cada variável indexada é associada à uma posição de memória, como acontece com variáveis simples.

Exemplo: Real NOTA[2];

NOTA[0] NOTA[1] NOTA[2]

Page 86: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETORINICIALIZAÇÃO:Inteiro valores[2];valores[0]=0;valores[1]=0;valores[2]=0;Inteiro valores[2] = { 0, 0, 0 };Inteiro valores[2];Para (i0; i<3; i++) { valores[i] = 0; }Caracter nome[50] = ” ”;Caracter nome[50] = “Fulano de Tal”;Caracter nome[50] = {‘F’,’u’,’l’,’a’,’n’,’o’,’ ‘,’d’,’e’,’ ‘,’T’,’a’,’l’};

Page 87: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETORATRIBUIÇÃO:- Além do nome da variável deve-se fornecer o

índice do componente onde será armazenado o valor da expressão.

Exemplos:NÚMEROS[2] 10; NOM[10] “João”;SALARIOS[3] 100.00;MATRIZ[5][8] 3.6;

Page 88: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETORLEITURA:- Feita passo-a-passo, um componente por

vez. Sempre informando o nome da variável e o índice a ser lido.

Exemplo 1:Inteiro Numero[9], i;Para (i 0; i < 10; i i + 1) {

Escreva( “%Io. número: ”, i+1);Leia( “%I”, &Numero[i]);

}

Page 89: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETORESCRITA:- Semelhante a leitura, feita passo-a-passo,

um componente por vez. Sempre informando o nome da variável e o índice a ser manipulado.

Exemplo 2: Inteiro Numero[9], i;//supondo que o vetor Numero foi //lido anteriormentePara (i 0; i <10; i i + 1) {

Escreva( “%I”, Numero[i]);}

Page 90: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETOR - Exemplo 1

Ler um conjunto de 1000 notas armazenando-as no vetor denominado NOTA. Calcular a média, verificar e exibir as notas abaixo da média.

Page 91: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Inicio Real NOTA[999], MEDIA, SOMA;

Inteiro I; Para (I 0, I <1000, I++)

Leia (“%R ”, &NOTA[I];

SOMA 0; Para (I 0, I <1000, I++)

SOMA SOMA + NOTA[I];

MEDIA SOMA / 1000; Para (I 0, I <1000, I++) Se (NOTA[I] < MEDIA)

Escreva(“%R”, NOTA[I]);

Fim

VETOR - Exemplo 1

Leitura das notas

Cálculo da Média

Escrita das notas abaixo da média

Page 92: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

VETOR - Exemplo 2

Ler um conjunto de N números inteiros (N é lido e é menor que 100). Encontrar e exibir o maior deles.

Page 93: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Inicio Inteiro N,I, J,MAIOR, NRO[99]; Leia N;

Para (J 0, J < N , J++)Leia (“%I”, &NRO[J]);

MAIOR NRO[0];

Para (I 1, I < N , I++)Se (NRO[I] > MAIOR)MAIOR NRO[I];

Escreva (“%R é o maior valor.”,MAIOR);Fim

VETOR - Exemplo 2Lê a quantidade

de elementos

Lê os números

Compara o elemento assumido

como maior com todos os outros, colocando em MAIOR aquele elemento

que realmente for o maior de todos

Assume que o primeiro elemento do conjunto

é o maior de todos

Page 94: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

Algoritmos Computacionais

InícioReal NUM1, NUM2, Média;Média (NUM1 + NUM2) / 2; Leia (“%R, &NUM1);Leia (“%R”, &num2);Se (Média >=7) Então

Escreva (“Aprovado”);Senão

Escreva (“Reprovado”);Fim

Erros em Algoritmos

Erro de Lógica

Erro de Sintaxe

Erro de Sintaxe

Page 95: Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello

FIFIMM