Revisão LPG-I – Revisão de ICC Prof. Flavio Marcello
-
Upload
caio-soares -
Category
Documents
-
view
230 -
download
0
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