Curso De Algoritmo Aula 5

968 views
886 views

Published on

Published in: Education, Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
968
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
27
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Curso De Algoritmo Aula 5

  1. 1. http://olinux.uol.com.br/artigos/352/print_preview.html Curso de Algoritmo - Aula V Por: Jorge Luiz E. de Souza ( 17/07/2001 ) Introdução Como prometido aqui está a análise do algoritmo da aula anterior . Vamos entender o código! Análise da estrutura PARA Primeira análise: A seção de declaração de variáveis Declare Nome, EstCiv, TimeQTorce, Origem: texto Sexo: caracter i, Idade, contMulher, contMFilhos, ContTPalmeiras: inteiro A primeira seção de um algoritmo é sempre a DECLARAÇÃO DE VARIÁVEIS. Variáveis estas, que serão utilizadas no decorrer do algoritmo. É necessária a declaração, pois se uma variável utilizada no corpo do algoritmo não estiver declarada, o algoritmo não será executado. Provavelmente ocorrerá o erro ? váriavel desconhecida ? e o programa será abortado. Segunda análise: A inicialização de variáveis Quando declaramos uma variável, simplesmente estamos reservando um espaço de memória que poderá conter qualquer valor no decorrer do algoritmo. Mas o endereço ao qual a nossa variável está apontando provavelmente contém informações deixadas por outros programas ou se tivermos sorte estará vazia. A inicialização de variáveis se faz necessária quando devemos conhecer previamente o valor de uma variável. É o caso dos contadores. Precisamos ter certeza de que o valor inicial de um contador é 0 (zero). Então iniciamos seu valor utilizando o comando de atribuição "". ContMulher 0 ContMFilhos 0 ContTPalmeiras 0 NOTA: Um detalhe muito importante que deve ser observado é o nome de uma variável. Devemos dar preferência para nomes SIGNIFICATIVOS, isto é, ao criar uma variável, escolha um nome que possibilite a vizualização de seu conteúdo simplesmente pela leitura do mesmo. Como no caso acima, onde: q ContMulher é a variável que contará todas as mulheres da pesquisa; q ContMFilhos é a variável que contará todas as mulheres casadas e com mais de três filhos; q ContTPalmeiras é a variável que contará todos os torcedores do Palmeiras da pesquisa. Terceira análise: A implementação do Para e tudo que se irá repetir em seu escopo PARA i <-- 1 ATÉ 3000 FAÇA escreva('Digite um nome: ') leia (nome) Escreva('Digite a idade: ') leia(idade) Escreva(Digite o Sexo (F para Feminino, M para Masculino): ') leia(Sexo) Escreva('Digite o Estado Civil (Solteiro(a), Casado(a): ') Leia(EstCiv) SE (sexo = 'F') or (sexo = 'f') ENTÃO ContMulher ContMulher + 1
  2. 2. SE EstCiv = 'Casada' ENTÃO Escreva('Digite o Numero de filhos: ') Leia(NumFilhos) SE NumFilhos > 3 ENTÃO ContMFilhos ContMFilhos + 1 FIMSE FIMSE //fim do então SENÃO Escreva('Digite o Time para o qual Torce: ') Leia(TimeQTorce) SE TimeQTorce = 'Palmeiras' ENTÃO contTPalmeiras ContTPalmeiras +1 FIMSE //fim do senão FIMSE Escreva('Digite a Origem (BR,US,UC...): ') leia(Origem) FIMPARA Muito bem, observando a estrutura acima, podemos notar: Todas as instruções entre o PARA e o FIMPARA serão executadas 3000 vezes. A estrutura de SE utilizada será tratada na Quarta análise. Todo o processamento do programa está dentro do para As primeiras oito linhas após o PARA são de leitura das variáveis (NOME, IDADE, SEXO e ESTCIV). Os comandos Escreva que antecedem cada comando Leia, são para informar o usuário quanto ao que o programa está esperando que ele digite. A posição de implementação dos contadores dentro da estrutura é estratégica, e não poderia ser outra. De acordo com a lógica do algoritmo, as leituras que estão dentro dos SE, mais internos, somente ocorrerão se a condição de entrada do ENTÃO ou SENÃO correspondente forem satisfeitas. Isto é, para o nosso algoritmo, se uma mulher não estiver com estado civil "Casada", o algoritmo não lerá número de filhos para esta mulher. Notamos que alguns valores recebidos não estão servindo para nenhum calculo especial, somente sendo necessários se, forem ser guardados em um banco de dados. Quarta análise: Estrutura SE ENTÃO SENÃO encadeadas SE (sexo = 'F') or (sexo = 'f') ENTÃO ContMulher ContMulher + 1 SE EstCiv = 'Casada' ENTÃO Escreva('Digite o Numero de filhos: ') Leia(NumFilhos) SE NumFilhos > 3 ENTÃO ContMFilhos ContMFilhos + 1 FIMSE FIMSE //fim do então SENÃO Escreva('Digite o Time para o qual Torce: ') Leia(TimeQTorce) SE TimeQTorce = 'Palmeiras' ENTÃO contTPalmeiras ContTPalmeiras +1 FIMSE //fim do senão FIMSE Observamos aqui, uma estrutura de SE's encadeados. NOTA: A indentação é muito importante na estruturação visual do código para uma melhor leitura e entendimento do mesmo. INDENTAÇÃO É: Tabulação de elementos semelhantes em um mesmo nível (COLUNA imaginária). Se você pegar uma
  3. 3. régua e colocar no início de um ENTÃO, encontrará seu SENÃO correspondente, e assim por diante. Relembrando Uma estrutura SE possui dois caminhos a serem seguidos, de acordo com o resultado da condição estabelecida para o mesmo. Sintaxe: SE CONDIÇÃO ENTÃO //comandos do então CASO A CONDIÇÃO SEJA VERDADEIRA SENÃO //comandos do senão CASO A CONDIÇÃO SEJA FALSA FIMSE Então, se o resultado da condição: SE (sexo = 'F') or (sexo = 'f') , for VERDADEIRA, serão executados todos os comandos que estão dentro do ENTÃO deste SE. ContMulher ContMulher + 1 SE EstCiv = 'Casada' ENTÃO Escreva('Digite o Numero de filhos: ') Leia(NumFilhos) SE NumFilhos > 3 ENTÃO ContMFilhos ContMFilhos + 1 FIMSE FIMSE //fim do então Caso contrário, se o resultado da condição for FALSO, serão executados todos os comandos do SENÃO correspondente. Escreva('Digite o Time para o qual Torce: ') Leia(TimeQTorce) SE TimeQTorce = 'Palmeiras' ENTÃO contTPalmeiras ContTPalmeiras +1 FIMSE //fim do senão E assim é para todos os SE's encadeados dentro deste último. Quinta análise: Comandos de saída (resultado do processamento) Nosso exemplo é muito simples, e sua saída não poderia ser diferente. Como utilizamos comente estruturas de contagem (CONTADORES), após a leitura ser finalizadas, simplesmente escrevemos uma frase elucidativa antes de mostrar o CONTEÚDO (somatória) das variáveis de contagem. Sexta análise: Comentário sobre as deficiencias e possíveis refinamentos Este código é um bom começo, mas apresenta algumas "falhas". Por exemplo: - Uma vez iniciada a execução, será necessário digitar contínuamente todos as 3000 fichas. Sem interrupção, isto é, sem fechar o programa. Agora, imagine se fossem 100.000 entradas! Então, o PARA é uma estrutura falha?! De maneira alguma, é uma ótima estrutura de repetição, mas devemos pensar muito bem aonde a utilizaremos dentro de um algoritmo. Em nossa próxima implementação de solução para este mesmo problema, utilizaremos uma estrutura de repetição mais flexível o ENQUANTO que nos traz mais um conceito importante em programação; as FLAGs. Conclusão O algoritmo está certo, mas a estrutura apresentada na resolução (PARA) não é adequada para esta
  4. 4. situação (isto foi feito propositalmente, para apresentar a você a estrutura). Na próxima aula apresentaremos o mesmo algoritmo com a estrutura (ENQUANTO), mais adequada para este problema. Entenda bem a leitura (interpretação) deste código, pois na próxima somente será analisada a nova estrutura, sendo que o restante do código será o mesmo. Até a próxima! Copyright (C) 1999- 2 0 0 0 Linux Solutions

×