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

Post on 07-Apr-2016

230 views 0 download

Transcript of 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/

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

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

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.

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.

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

Início e fim

Entrada de dados

Saída de dados Decisão

Processamento

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

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

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

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”;)

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

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.

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

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

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)

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

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.

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

ESTRUTURA CONDICIONAL

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

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

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

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

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

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

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

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

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

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

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)

Algoritmos Computacionais

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

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

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

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)

Algoritmos Computacionais

Expressões LógicasOperadores lógicos:

e (conjunção)

ou (disjunção)

não (negação)

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”

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)

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

Algoritmos ComputacionaisExemplo: Faça um programa que leia 4

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

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

Algoritmos computacionais ESTRUTURAS CONDICIONAIS

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

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

COMANDOS

São de 3 tipos

Estruturas de Condicionais

Estrutura Condicional Simples

Fluxograma

Comando1…

ComandoN

decisão .V..F.

- 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

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

calcula a média e imprime o resultado.

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

Estrutura Condicional Composta

Fluxograma

comando 1

decisão .V..F.

comando 2

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

Exemplo:Verifica Maioridade.

.F. .V.

Início

Idade

Idade>=18

“Menor deidade”

“Maior deidade”

Fim

Estrutura Condicional Composta

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

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

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)

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>;

}

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”).

// 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

Algoritmos computacionais ESTRUTURA DE REPETIÇÃO

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

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

Estrutura com Teste no Início

condição.V.

.F.

Fluxograma

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

Estrutura com Teste no Início (Enquanto)

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

// 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

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)

// 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

Estrutura com Teste no Final

condição.F.

.V.

Fluxograma

...

C1

C2

Cn

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:

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)

//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

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

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

//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

Estrutura de Repetição Contada

.V.

.F.

Fluxograma

Comando

Início , Cond., Incr.

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>;

}

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

Estrutura de Repetição Contada (Para)

//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.

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++ ; }

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.

Algoritmos computacionais Tipos de Dados Estruturados

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

freqüente)

TIPOS DE DADOS ESTRUTURADOS - ANALOGIA

Vetor Matriz

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)

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.

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

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)

// 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!

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.

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.

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.

VETORExemplo:

Real VETOR[200];

Nome da Variável

Número máximo de elementos do conjunto

Tipo dos elementosdo conjunto

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]

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’};

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;

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]);

}

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]);}

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.

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

VETOR - Exemplo 2

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

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

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

FIFIMM