Algoritmos e
Estrutura de Dados
Aula 4
28/08/2012
Profª Ms. Engª Elaine Cecília Gatto
Unidade 4: Estruturas de Controle em Pascal
Curso de Bacharelado em Engenharia de Computação
Universidade do Sagrado Coração – USC
Bauru/SP
Estrutura de Repetição sem
teste
• A estrutura PARA repete a execução do bloco em um número
  definitivo de vezes pois ela possui limites fixos. Esta estrutura é
  utilizada quando sabe-se de antemão o número de vezes que o laço
  deverá ser executado.

Para V de Vi até Vf passo P faça
   Início
         ação/ações;
   Fim para;

•   V = variável de controle do tipo inteiro;
•   Vi = valor inicial da variável V;
•   Vf = valor final da variável V;
•   P = é o valor do incremento dado a variável V;
Estrutura de Repetição sem
teste                                         PASSO 1:
                                              0+1=1
                                              1+1=2
• Exemplo1:                                   2+1=3
                                              ......
algoritmo exemplo1;
                                              PASSO – 1
   início                                     3–1=2
   inteiro: cont;                             2–1=1
   para cont de 1 até 3 passo 1 faça          1–1=0
                                              Não existe 0 – 1, portanto, no
       início                                 PASSO -1, pára no 1, não chega
         escreva(‘número = ’, cont);          a 0.
       fim para;
                                       cont     Vi    Vf     Passo 1    cont
   fim.
                                        1       1        3   1+1=2       2
                                        2       1        3   2+1=3       3
                                        3       1        3   3+1=4       4
                                        4       1        3    -----     -----
Estrutura de Repetição sem
teste
• Exemplo2:

algoritmo exemplo2;
   início
   inteiro: cont;
   para cont de 5 até 7 passo 1 faça
       início
         escreva(‘número = ’, cont);
       fim para;
                                       cont   Vi   Vf   Passo 1   cont
   fim.
                                        5     5    7     5+1       6
                                        6     5    7     6+1       7
                                        7     5    7     7+1       8
                                        8     5    7     -----    -----
Estrutura de Repetição sem
teste
• Exemplo3:

algoritmo exemplo3;
   início
   inteiro: cont;
   para cont de 1 até 500 passo 1 faça
       início
         escreva(‘número = ’, cont);
       fim para;
                                       cont   Vi   Vf    Passo 1   cont
   fim.
                                        1     1    500    1+1       2
                                       ....   1    500     .....   ....
                                       500    1    500   500 + 1   501
                                       501    1    500     ----    ----
Estrutura de Repetição sem
teste
• Exemplo4:

algoritmo exemplo4;
   início
   inteiro: cont;
   para cont de 3 até 1 passo -1 faça
       início
         escreva(‘número = ’, cont);
       fim para;
                                      cont   Vi   Vf   Passo -1   cont
   fim.
                                       3     3    1     3-1        2
                                       2     3    1     2-1        1
                                       1     3    1     1-1        0
                                       0     3    1      -----    ----
Estrutura de Repetição em
Pascal
• Passo 1:
for variável := valorInicial to valorFinal do
   Begin
        Comandos;
   End;
• Passo -1:
for variável := valorInicial to valorfinal do
   Begin
        Comandos;
   End;

• A variável deve ser, obrigatoriamente do tipo integer.
Estrutura de Repetição
• Pseudocódigo        • Pascal

                      PASSO 1
Para variável de VI   For variável := VI to VF do
                         Begin
até VF passo P faça           Comandos;
  Início                 End;

      Comandos;       PASSO -1
  Fim para;           For variável := VI downto VF do
                         Begin
                              Comandos;
                         End;
Contadores e somatórios
• Exemplo: calcular e imprimir a soma dos cinco primeiros
  números inteiros positivos.

0      1       2      3       4      5

1.   Zerar somatório: soma  0
2.   Definir valor inicial: num  1
3.   Inicializar contador: cont  1
4.   Realizar operação desejada: soma soma + num
5.   Variar valor inicial: num  num + 1
6.   Incrementar/decrementar contador: cont  cont + 1
Contadores e somatórios
algoritmo exemplo;
   início
       inteiro: soma, num, cont;
       soma  0;
       num  1;
       para cont de 1 até 5 passo 1 faça
          inicio
             soma  soma + num;
             num  num + 1;
          fim para;
       escreva (‘soma = ’, soma);
   fim.
Estrutura de Repetição com teste de
condição no início – Enquanto/Faça
While condição do
 Begin
       Comandos;
 End;

• Enquanto uma condição é verdadeira, uma ação ou ações são
  executadas repetidamente (enquanto, faça)

Enquanto condição faça
  Início
       Ação/ações
  Fim enquanto;
Estrutura de Repetição com teste de
condição no início – Enquanto/Faça
• Exemplo: imprimir os números inteiros de 0 a 3.
algoritmo exemplo;
   início
   inteiro: n;
   n  0;
   enquanto n <= 3
       início
          escreva (‘num = ’, n);
          n  n+1;
       fim enquanto;
   fim.
Estrutura de Repetição com teste de
condição no início – Enquanto/Faça
• A estrutura enquanto pode ser escrita como:
Inicialização
Enquanto condição faça
   Início
       .....
       incremento / decremento
       .....
   Fim enquanto;

  Lema: um comando leia, ou de atribuição, antes do enquanto
  para entrar na repetição e, um ocmando leia, ou de
  atribuição, antes de fim enquanto para sair da repetição.
Estrutura de Repetição com teste de
condição no início – Enquanto/Faça
• Exemplo: ler vários números e imprimí-los até que o número
  digitado seja zero.
algoritmo exemplo;
   início
       real:n;
       escreva(‘digite um número ou zero para finalizar’);
       enquanto n<>0 faça
          início
             escreva(‘n = ’, n);
             escreva(‘digite um número ou zero para final’);
             leia(n);
          fim enquanto;
   fim.
Estruturas de Repetição –
Exercícios For
1. Faça um algoritmo para imprimir os números inteiros de 10
   a 0, inclusive, em ordem alfabética.
2. Faça um algoritmo para imprimir o quadrado dos números
   inteiros de 1 a 20, inclusive.
3. Faça um algoritmo para imprimir os números inteiros
   positivos inferiores ou iguais a um número N inteiro positivo
   lido inicialmente. Fazer o teste de mesa para N=5 e N=8.
4. Faça um algoritmo para ler um número inteiro positivo
   menor ou igual a 10. em seguida, calcular e imprimir a
   respectiva tabuada. Fazero teste de mesa para N=3 e N=7.
5. Faça um algoritmo para ler um número inteiro positivo N
   maior ou igual a 2 e imprimir todos os números pares
   positivos contidos no intervalo de 2 até o número lido N.
   Usar passo 1 no para. Testar para N=5 e N=6.
Estruturas de Repetição –
Exercícios For
6. Faça um algoritmo para ler 10 números quaisquer e
   imprimir a raíz quadrada de cada número, quando possível.
   Imprimir também os números lidos.
7. Elabore um algoritmo que imprima uma tabela de
   conversão de polegadas para centímetros. Deseja-se que a
   tabela conste avlores desde 1 polegada até 20 polegadas
   inteiras. Lembrando: 1 polegada = 2,54 cm.
8. Criar um algoritmo que calcule e imprima o valor de bn. O
   valor de n deverá ser inteiro e maior do que 1 e o de b
   inteiro e maior ou igual a 2. Imprimir também b e n.
   Verificar quando é possível realizar o cálculo.
9. Elaborar um algoritmo que leia a quantidade de números
   que se deseja digitar para que possa ser impresso o maior e
   o menor números digitados.
Estruturas de Repetição –
Exercícios For
10. Faça um algortimo para calcular e imprimir a soma e a
    média aritmética dos números inteiros positivos inteiros ou
    iguais a um número N, inteiro positivo, lido inicialmente.
11. Faça um algoritmo para imprimir as sequencias de números:
   15      10      5      0      -5     -10     -15
    0      3       6      9      12     15      0
   -9      -6     -3      0      3       6      9


Teste de mesa:
Soma =
Num =
Cont =
Estruturas de Repetição –
Exercícios For
12. Faça um algoritmo para ler a idade de 10 pessoas. Calcule e
      imprima a quantidade de pessoas maiores de idade
      (>=18anos)
13. Faça um algoritmo para ler a idade de 15 pessoas. Calcule e
      imprima a quantidade de pessoas em cada faixa etária e a
      porcentagem de cada faixa etária em relação ao total de
      pessoas. As faixas etárias são:
1 .... 15 | 16 .... 30 | 31 .... 45 | 46 .... 60 | >= 61 anos.
14. Uma certa firma fez uma pesquisa de mercado para saber se
      as pessoas gostaram ou não de um novo produto lançado.
      Para isso forneceu o sexo do entrevistado e sua resposta
      (sim ou não). Sabendo que foram entrevistadas 10 pessoas,
      faça um algoritmo que calcule e imprima: (continua no
      próximo slide)
Estruturas de Repetição –
Exercícios For
• O número de pessoas que responderam sim;
• O número de pessoas que responderam não;
• O número de mulheres que responderam sim;
• A % de homens que responderam não entre todos os homens
  analisados;
15. Sendo H = 1 + ½ + 1/3 + ... + 1/N, elabore um algoritmo para
    calcular e imprimir o valor de H. O número N deve ser lido
    inicialmente.
16. Considere uma certa firma de pesquisa de mercado para
    saber se as pessoas gostaram ou não de um novo produto
    lançado. Para isso forneceu o sexo do entrevistado e sua
    resposta, sim ou não. Sabendo que foram entrevistadas 10
    pessoas, faça um algoritmo que calcule e imprima 
Estruturas de Repetição –
Exercícios For
• O número de pessoas que responderam sim;
• O número de pessoas que responderam sim;
• A porcentagem de homens que responderam não entre todos
  os homens analisados;
Estruturas de Repetição –
Exercícios While
1. Faça um algoritmo para ler um número N, inteiro positivo.
   Em seguida, calcular a soma e a média aritmética de todos
   os números inteiros entre 1 e N, inclusive. Imprimir a soma
   e a média.
2. Faça um algoritmo par aler vários números, calcular e
   imprimir a média aritmética destes números. O último
   número deve ser zero, que não entra no cálculo.
3. Faça um algoritmo para ler uma nota de zero a dez de vários
   alunos. Calcular e imprimir a média da classe. Verifique
   como deve ser o teste para finalizar os dados de entrada.
Estruturas de Repetição –
Exercícios While
4. Foi realizado uma pesquisa quanto à religião de uma
   determinada cidade. Faça um algoritmo para ler um número
   indeterminado de dados, religião e idade, dos entrevistados,
   sendo o fim de dados identificado por religião = fim.
   Considere tres possibilidades para religião: católico,
   protestante ou budista. Imprimir:
5. O número de católicos com idade superior a 40 anos;
6. A porcentagem de protestantes;
7. A idade média dos budistas;

Aula 4 aed - parte 1

  • 1.
    Algoritmos e Estrutura deDados Aula 4 28/08/2012 Profª Ms. Engª Elaine Cecília Gatto Unidade 4: Estruturas de Controle em Pascal Curso de Bacharelado em Engenharia de Computação Universidade do Sagrado Coração – USC Bauru/SP
  • 2.
    Estrutura de Repetiçãosem teste • A estrutura PARA repete a execução do bloco em um número definitivo de vezes pois ela possui limites fixos. Esta estrutura é utilizada quando sabe-se de antemão o número de vezes que o laço deverá ser executado. Para V de Vi até Vf passo P faça Início ação/ações; Fim para; • V = variável de controle do tipo inteiro; • Vi = valor inicial da variável V; • Vf = valor final da variável V; • P = é o valor do incremento dado a variável V;
  • 3.
    Estrutura de Repetiçãosem teste PASSO 1: 0+1=1 1+1=2 • Exemplo1: 2+1=3 ...... algoritmo exemplo1; PASSO – 1 início 3–1=2 inteiro: cont; 2–1=1 para cont de 1 até 3 passo 1 faça 1–1=0 Não existe 0 – 1, portanto, no início PASSO -1, pára no 1, não chega escreva(‘número = ’, cont); a 0. fim para; cont Vi Vf Passo 1 cont fim. 1 1 3 1+1=2 2 2 1 3 2+1=3 3 3 1 3 3+1=4 4 4 1 3 ----- -----
  • 4.
    Estrutura de Repetiçãosem teste • Exemplo2: algoritmo exemplo2; início inteiro: cont; para cont de 5 até 7 passo 1 faça início escreva(‘número = ’, cont); fim para; cont Vi Vf Passo 1 cont fim. 5 5 7 5+1 6 6 5 7 6+1 7 7 5 7 7+1 8 8 5 7 ----- -----
  • 5.
    Estrutura de Repetiçãosem teste • Exemplo3: algoritmo exemplo3; início inteiro: cont; para cont de 1 até 500 passo 1 faça início escreva(‘número = ’, cont); fim para; cont Vi Vf Passo 1 cont fim. 1 1 500 1+1 2 .... 1 500 ..... .... 500 1 500 500 + 1 501 501 1 500 ---- ----
  • 6.
    Estrutura de Repetiçãosem teste • Exemplo4: algoritmo exemplo4; início inteiro: cont; para cont de 3 até 1 passo -1 faça início escreva(‘número = ’, cont); fim para; cont Vi Vf Passo -1 cont fim. 3 3 1 3-1 2 2 3 1 2-1 1 1 3 1 1-1 0 0 3 1 ----- ----
  • 7.
    Estrutura de Repetiçãoem Pascal • Passo 1: for variável := valorInicial to valorFinal do Begin Comandos; End; • Passo -1: for variável := valorInicial to valorfinal do Begin Comandos; End; • A variável deve ser, obrigatoriamente do tipo integer.
  • 8.
    Estrutura de Repetição •Pseudocódigo • Pascal PASSO 1 Para variável de VI For variável := VI to VF do Begin até VF passo P faça Comandos; Início End; Comandos; PASSO -1 Fim para; For variável := VI downto VF do Begin Comandos; End;
  • 9.
    Contadores e somatórios •Exemplo: calcular e imprimir a soma dos cinco primeiros números inteiros positivos. 0 1 2 3 4 5 1. Zerar somatório: soma  0 2. Definir valor inicial: num  1 3. Inicializar contador: cont  1 4. Realizar operação desejada: soma soma + num 5. Variar valor inicial: num  num + 1 6. Incrementar/decrementar contador: cont  cont + 1
  • 10.
    Contadores e somatórios algoritmoexemplo; início inteiro: soma, num, cont; soma  0; num  1; para cont de 1 até 5 passo 1 faça inicio soma  soma + num; num  num + 1; fim para; escreva (‘soma = ’, soma); fim.
  • 11.
    Estrutura de Repetiçãocom teste de condição no início – Enquanto/Faça While condição do Begin Comandos; End; • Enquanto uma condição é verdadeira, uma ação ou ações são executadas repetidamente (enquanto, faça) Enquanto condição faça Início Ação/ações Fim enquanto;
  • 12.
    Estrutura de Repetiçãocom teste de condição no início – Enquanto/Faça • Exemplo: imprimir os números inteiros de 0 a 3. algoritmo exemplo; início inteiro: n; n  0; enquanto n <= 3 início escreva (‘num = ’, n); n  n+1; fim enquanto; fim.
  • 13.
    Estrutura de Repetiçãocom teste de condição no início – Enquanto/Faça • A estrutura enquanto pode ser escrita como: Inicialização Enquanto condição faça Início ..... incremento / decremento ..... Fim enquanto; Lema: um comando leia, ou de atribuição, antes do enquanto para entrar na repetição e, um ocmando leia, ou de atribuição, antes de fim enquanto para sair da repetição.
  • 14.
    Estrutura de Repetiçãocom teste de condição no início – Enquanto/Faça • Exemplo: ler vários números e imprimí-los até que o número digitado seja zero. algoritmo exemplo; início real:n; escreva(‘digite um número ou zero para finalizar’); enquanto n<>0 faça início escreva(‘n = ’, n); escreva(‘digite um número ou zero para final’); leia(n); fim enquanto; fim.
  • 15.
    Estruturas de Repetição– Exercícios For 1. Faça um algoritmo para imprimir os números inteiros de 10 a 0, inclusive, em ordem alfabética. 2. Faça um algoritmo para imprimir o quadrado dos números inteiros de 1 a 20, inclusive. 3. Faça um algoritmo para imprimir os números inteiros positivos inferiores ou iguais a um número N inteiro positivo lido inicialmente. Fazer o teste de mesa para N=5 e N=8. 4. Faça um algoritmo para ler um número inteiro positivo menor ou igual a 10. em seguida, calcular e imprimir a respectiva tabuada. Fazero teste de mesa para N=3 e N=7. 5. Faça um algoritmo para ler um número inteiro positivo N maior ou igual a 2 e imprimir todos os números pares positivos contidos no intervalo de 2 até o número lido N. Usar passo 1 no para. Testar para N=5 e N=6.
  • 16.
    Estruturas de Repetição– Exercícios For 6. Faça um algoritmo para ler 10 números quaisquer e imprimir a raíz quadrada de cada número, quando possível. Imprimir também os números lidos. 7. Elabore um algoritmo que imprima uma tabela de conversão de polegadas para centímetros. Deseja-se que a tabela conste avlores desde 1 polegada até 20 polegadas inteiras. Lembrando: 1 polegada = 2,54 cm. 8. Criar um algoritmo que calcule e imprima o valor de bn. O valor de n deverá ser inteiro e maior do que 1 e o de b inteiro e maior ou igual a 2. Imprimir também b e n. Verificar quando é possível realizar o cálculo. 9. Elaborar um algoritmo que leia a quantidade de números que se deseja digitar para que possa ser impresso o maior e o menor números digitados.
  • 17.
    Estruturas de Repetição– Exercícios For 10. Faça um algortimo para calcular e imprimir a soma e a média aritmética dos números inteiros positivos inteiros ou iguais a um número N, inteiro positivo, lido inicialmente. 11. Faça um algoritmo para imprimir as sequencias de números: 15 10 5 0 -5 -10 -15 0 3 6 9 12 15 0 -9 -6 -3 0 3 6 9 Teste de mesa: Soma = Num = Cont =
  • 18.
    Estruturas de Repetição– Exercícios For 12. Faça um algoritmo para ler a idade de 10 pessoas. Calcule e imprima a quantidade de pessoas maiores de idade (>=18anos) 13. Faça um algoritmo para ler a idade de 15 pessoas. Calcule e imprima a quantidade de pessoas em cada faixa etária e a porcentagem de cada faixa etária em relação ao total de pessoas. As faixas etárias são: 1 .... 15 | 16 .... 30 | 31 .... 45 | 46 .... 60 | >= 61 anos. 14. Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado. Para isso forneceu o sexo do entrevistado e sua resposta (sim ou não). Sabendo que foram entrevistadas 10 pessoas, faça um algoritmo que calcule e imprima: (continua no próximo slide)
  • 19.
    Estruturas de Repetição– Exercícios For • O número de pessoas que responderam sim; • O número de pessoas que responderam não; • O número de mulheres que responderam sim; • A % de homens que responderam não entre todos os homens analisados; 15. Sendo H = 1 + ½ + 1/3 + ... + 1/N, elabore um algoritmo para calcular e imprimir o valor de H. O número N deve ser lido inicialmente. 16. Considere uma certa firma de pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado. Para isso forneceu o sexo do entrevistado e sua resposta, sim ou não. Sabendo que foram entrevistadas 10 pessoas, faça um algoritmo que calcule e imprima 
  • 20.
    Estruturas de Repetição– Exercícios For • O número de pessoas que responderam sim; • O número de pessoas que responderam sim; • A porcentagem de homens que responderam não entre todos os homens analisados;
  • 21.
    Estruturas de Repetição– Exercícios While 1. Faça um algoritmo para ler um número N, inteiro positivo. Em seguida, calcular a soma e a média aritmética de todos os números inteiros entre 1 e N, inclusive. Imprimir a soma e a média. 2. Faça um algoritmo par aler vários números, calcular e imprimir a média aritmética destes números. O último número deve ser zero, que não entra no cálculo. 3. Faça um algoritmo para ler uma nota de zero a dez de vários alunos. Calcular e imprimir a média da classe. Verifique como deve ser o teste para finalizar os dados de entrada.
  • 22.
    Estruturas de Repetição– Exercícios While 4. Foi realizado uma pesquisa quanto à religião de uma determinada cidade. Faça um algoritmo para ler um número indeterminado de dados, religião e idade, dos entrevistados, sendo o fim de dados identificado por religião = fim. Considere tres possibilidades para religião: católico, protestante ou budista. Imprimir: 5. O número de católicos com idade superior a 40 anos; 6. A porcentagem de protestantes; 7. A idade média dos budistas;