Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Lógica e Pascal, Notas de estudo de Informática

Apostila completa Sobre Pascalzim /ou TurboPascal. Abrange as técnicas e maneiras sobre como programar nesta linguagem. Ótima apostila para quem está iniciando e quer aprender lógica de programação com mais facilidade.

Tipologia: Notas de estudo

2011
Em oferta
40 Pontos
Discount

Oferta por tempo limitado


Compartilhado em 10/08/2011

dener-henrique-goncalves-ferreira-1
dener-henrique-goncalves-ferreira-1 🇧🇷

1 documento

1 / 112

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO
FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS
LINGUAGENS E TÉCNICAS
DE PROGRAMAÇÃO I
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64
Discount

Em oferta

Pré-visualização parcial do texto

Baixe Lógica e Pascal e outras Notas de estudo em PDF para Informática, somente na Docsity!

ASSOCIAÇÃO PARAIBANA DE ENSINO RENOVADO

FACULDADE PARAIBANA DE PROCESSAMENTO DE DADOS

LINGUAGENS E TÉCNICAS

DE PROGRAMAÇÃO I

SUMÁRIO

  • ALGORITMOS...................................................................................................
    • 1.1. CONCEITO....................................................................................................................................................
    • 1.2. POR QUE PRECISAMOS DE ALGORITMOS?
    • 1.3. CARACTERÍSTICAS...................................................................................................................................
    • 1.4. FORMAS DE REPRESENTAÇÃO..............................................................................................................
      • 1.4.1. DESCRIÇÃO NARRATIVA..................................................................................................................
      • 1.4.2. FLUXOGRAMA.....................................................................................................................................
      • 1.4.3. LINGUAGEM ALGORÍTMICA............................................................................................................
    • 1.5. UM AMBIENTE PARA ESCREVER ALGORITMOS..............................................................................
      • 1.5.1. FUNCIONAMENTO DO NOSSO COMPUTADOR............................................................................
    • 1.6. ESTRUTURAS CHAVES DA CONSTRUÇÃO DE ALGORITMOS.........................................................
      • 1.6.1. SEQUENCIAÇÃO..................................................................................................................................
      • 1.6.2. DECISÃO OU SELEÇÃO......................................................................................................................
      • 1.6.3. REPETIÇÃO OU ITERAÇÃO.............................................................................................................
    • 1.7. REFINAMENTOS SUCESSIVOS..............................................................................................................
  • LINGUAGEM ALGORÍTMICA.....................................................................
    • 2.1. CONCEITO DE VARIÁVEL......................................................................................................................
    • 2.2. OPERAÇÃO DE ATRIBUIÇÃO................................................................................................................
    • 2.3. OPERAÇÕES DE ENTRADA E SAÍDA...................................................................................................
    • 2.4. ESTRUTURA SEQÜENCIAL....................................................................................................................
    • 2.5. ESTRUTURA CONDICIONAL..................................................................................................................
      • 2.5.1. ESTRUTURA CONDICIONAL SIMPLES.........................................................................................
      • 2.5.2. ESTRUTURA CONDICIONAL COMPOSTA....................................................................................
    • 2.6. ESTRUTURA DE REPETIÇÃO.................................................................................................................
  • LINGUAGEM DE PROGRAMAÇÃO PASCAL..........................................
    • 3.1. INTRODUÇÃO...........................................................................................................................................
      • 3.1.1. LINGUAGENS DE PROGRAMAÇÃO...............................................................................................
      • 3.1.2. TRADUTORES....................................................................................................................................
      • 3.1.3. A LINGUAGEM PASCAL..................................................................................................................
    • 3.2. ELEMENTOS BÁSICOS............................................................................................................................
      • 3.2.1. IDENTIFICADORES...........................................................................................................................
      • 3.2.2. PALAVRAS RESERVADAS...............................................................................................................
    • 3.3. TIPOS DE DADOS......................................................................................................................................
      • 3.3.1. SIMPLES..............................................................................................................................................
      • 3.3.2. ESTRUTURADOS...............................................................................................................................
      • 3.3.3. DEFINIDOS PELO USUÁRIO............................................................................................................
    • 3.4. EXPRESSÕES ARITMÉTICAS.................................................................................................................
      • 3.4.1. OPERADORES ARITMÉTICOS.........................................................................................................
      • 3.4.2. PRIORIDADE.......................................................................................................................................
      • 3.4.3. FUNÇÕES E PROCEDIMENTOS NUMÉRICOS PREDEFINIDOS.................................................
    • 3.5. EXPRESSÕES LÓGICAS...........................................................................................................................
      • 3.5.1. OPERADORES RELACIONAIS.........................................................................................................
      • 3.5.2. OPERADORES LÓGICOS..................................................................................................................
      • 3.5.3. PRIORIDADE.......................................................................................................................................
    • 3.6. FORMATO DE UM PROGRAMA PASCAL.............................................................................................
      • 3.6.1. DECLARAÇÃO DE USO DE UNIDADES........................................................................................
      • 3.6.2. DECLARAÇÃO DE CONSTANTES..................................................................................................
      • 3.6.3. DECLARAÇÃO DE TIPOS.................................................................................................................
      • 3.6.4. DECLARAÇÃO DE VARIÁVEIS.......................................................................................................
      • 3.6.5. DECLARAÇÃO DE PROCEDIMENTOS E FUNÇÕES....................................................................
      • 3.6.6. ÁREA DE COMANDOS......................................................................................................................
    • 3.7. COMENTÁRIOS.........................................................................................................................................
  • COMANDOS BÁSICOS DA LINGUAGEM PASCAL................................
    • 4.1. ATRIBUIÇÃO.............................................................................................................................................
    • 4.2. ENTRADA...................................................................................................................................................
    • 4.3. SAÏDA..........................................................................................................................................................
    • 4.4. COMANDOS DE DECISÃO......................................................................................................................
      • 4.4.1. DECISÃO SIMPLES ( IF-THEN )......................................................................................................
      • 4.4.2. DECISÃO COMPOSTA ( IF-THEN-ELSE )......................................................................................
      • 4.4.3. DECISÃO MÚLTIPLA ( CASE-OF ).................................................................................................
    • 4.5. COMANDOS DE REPETIÇÃO..................................................................................................................
      • 4.5.1. REPETIÇÃO COM TESTE NO INÍCIO ( WHILE-DO )...................................................................
      • 4.5.2. REPETIÇÃO COM TESTE NO FINAL ( REPEAT-UNTIL )...........................................................
      • 4.5.3. REPETIÇÃO AUTOMÁTICA ( FOR )................................................................................................
  • ARRAYS............................................................................................................
    • 5.1. VETORES....................................................................................................................................................
    • 5.2. MATRIZES..................................................................................................................................................
    • 5.3. ARRAYS MULTIDIMENSIONAIS...........................................................................................................
  • MODULARIZAÇÃO........................................................................................
    • 6.1. PROCEDIMENTO.......................................................................................................................................
    • 6.2. FUNÇÃO.....................................................................................................................................................
    • 6.3. VARIÁVEIS GLOBAIS E VARIÁVEIS LOCAIS.....................................................................................
    • 6.4. PARÂMETROS...........................................................................................................................................
    • 6.5. UTILIZANDO ARRAYS COMO PARÂMETROS...................................................................................
    • 6.6. RECURSIVIDADE......................................................................................................................................
    • 6.7. CRIAÇÃO DE UNITS.................................................................................................................................
      • 6.7.1. ESTRUTURA DE UMA UNIT...........................................................................................................
      • 6.7.2. UTILIZAÇÃO DE UNITS...................................................................................................................
  • MANIPULAÇÃO DE STRINGS.....................................................................
    • 7.1. O TIPO DE DADO STRING.......................................................................................................................
    • 7.2. USANDO STRINGS COMO PARÂMETROS EM SUBROTINAS..........................................................
    • 7.3. FUNÇÕES E PROCEDIMENTO PREDEFINIDOS..................................................................................
    • 7.4. CONTROLE DO VÍDEO E DO TECLADO..............................................................................................
  • ARQUIVOS E REGISTROS............................................................................
    • 8.1. REGISTROS................................................................................................................................................
      • 8.1.1. DECLARAÇÃO....................................................................................................................................
      • 8.1.2. REFERÊNCIA......................................................................................................................................
      • 8.1.3. CONJUNTO DE REGISTROS.............................................................................................................
      • 8.1.4. O COMANDO WITH...........................................................................................................................
    • 8.2. ARQUIVOS.................................................................................................................................................
      • 8.2.1. DECLARAÇÃO DE ARQUIVOS........................................................................................................
      • 8.2.2. UTILIZAÇÃO DE ARQUIVOS...........................................................................................................
  • CLASSIFICAÇÃO E PESQUISA...................................................................
    • 9.1. CLASSIFICAÇÃO.......................................................................................................................................
      • 9.1.1. MÉTODO DA BOLHA
      • 9.1.2. CLASSIFICAÇÃO POR INSERÇÃO..................................................................................................
      • 9.1.3. CLASSIFICAÇÃO POR SELEÇÃO
    • 9.2. COMPARAÇÃO DOS MÉTODOS DE CLASSIFICAÇÃO APRESENTADOS......................................
    • 9.3. PESQUISA...................................................................................................................................................
      • 9.3.1. PESQUISA SEQÜENCIAL..................................................................................................................
      • 9.3.2. PESQUISA SEQUENCIAL ORDENADA..........................................................................................
      • 9.3.3. PESQUISA BINÁRIA..........................................................................................................................
    • 9.4. COMPARAÇÃO DOS MÉTODOS DE BUSCA APRESENTADOS......................................................
  • GLOSSÁRIO...................................................................................................
  • BIBLIOGRAFIA.............................................................................................

Capítulo 1

ALGORITMOS

1.1. CONCEITO

A palavra algoritmo , à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fa- zemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algoritmos freqüentemente encontrados são:

  • instruções para se utilizar um aparelho eletrodoméstico;
  • uma receita para preparo de algum prato;
  • guia de preenchimento para declaração do imposto de renda;
  • a regra para determinação de máximos e mínimos de funções por derivadas sucessivas;
  • a maneira como as contas de água, luz e telefone são calculados mensalmente; etc.

São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:

“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH]

“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado proble- ma”. [TREMBLAY]

“Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resul- tado ou da solução do problema”. [AURÉLIO]

1.2. POR QUE PRECISAMOS DE ALGORITMOS?

Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algo- ritmo:

“A noção de algoritmo é básica para toda a programação de computadores”. [KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”]

“O conceito central da programação e da ciência da computação é o conceito de algoritmo”. [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e respon- sável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]

A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que mandamos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem específica e até mesmo do próprio computador.

1.3. CARACTERÍSTICAS

Todo algoritmo deve apresentar algumas características básicas:

  • ter fim;
  • não dar margem à dupla interpretação (não ambíguo);
  • capacidade de receber dado(s) de entrada do mundo exterior;
  • poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo;
  • ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo fini- to).
  • Padrão mundial

DESVANTAGENS:

  • Faz com que a solução do problema já esteja amarrada a dispositivos físicos;
  • Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;
  • Complica-se à medida que o algoritmo cresce.

1.4.3. LINGUAGEM ALGORÍTMICA

Consiste na definição de uma pseudolinguagem de programação, cujos comandos são em português, para representar algoritmos.

EXEMPLO: Algoritmo CALCULA_DOBRO início Leia NUM DOBRO  2 * NUM Escreva DOBRO fim

VANTAGENS:

  • Independência física da solução (solução lógica apenas);
  • Usa o português como base;
  • Pode-se definir quais e como os dados vão estar estruturados;
  • Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.

DESVANTAGENS:

  • Exige a definição de uma linguagem não real para trabalho;
  • Não padronizado.

1.5. UM AMBIENTE PARA ESCREVER ALGORITMOS

Descreveremos uma máquina hipotética para a qual escreveremos nossos algoritmos. O nosso computador hipotético apresentará a seguinte organização:

Convenção: trajeto de dados

trajeto de sinais de controle

Cada uma das partes constituintes da figura acima tem os seguintes significados:

Unidade Central de Processamento

Dispositivo de Entrada

Unidade de Controle

Unidade Lógica e Aritmética

Memória Principal

Dispositivo de Saída

(1) Dispositivo de entrada (o teclado): É o meio pelo qual os dados que serão trabalhados pelo algoritmo vão ser introduzidos em nosso com- putador hipotético;

(2) Unidade Lógica e Aritmética (ULA): Parte responsável pelas operações matemáticas e avaliações lógicas;

(3) Unidade de Controle: Exerce controle sobre as demais partes do nosso computador. É uma verdadeira gerente que distribui tarefas às outras unidades;

(4) Memória: Guarda o algoritmo a ser executado e os dados a serem utilizados pelo mesmo. Todo dado fornecido ao computador e o resultado de suas operações ficam guardados na memória;

(5) Dispositivo de Saída (vídeo e impressora): É o meio que se dispõe para apresentação dos resultados obtidos.

1.5.1. FUNCIONAMENTO DO NOSSO COMPUTADOR

Todos os computadores, independentemente dos seus tamanhos, são conceitualmente semelhantes ao es- quema da figura anterior (há algumas diferenças, mas não trataremos aqui dos casos especiais).

Resumidamente, podemos afirmar que existem 4 (quatro) operações básicas que qualquer computador pode executar:

a) operações de entrada e saída: ler dados do teclado e escrever dados na tela são exemplos destas operações. Elas servem para introduzir dados na memória do nosso computador e exibir dados que já estejam lá armazenados;

b) operações aritméticas: são utilizadas na realização de operações matemáticas (adição, subtração, multiplicação e divisão);

c) operações lógicas e relacionais: têm aplicabilidade em comparações, testes de condições lógicas (

6? X = Y ?);

d) movimentação de dados entre os vários componentes: as operações aritméticas são executadas na Unidade Lógica e Aritmética, necessitando da transferência dos dados para essa unidade e da volta do resultado final para ser guardado na memória.

1.5.2. RESOLVENDO UM PROBLEMA

Suponha que queiramos resolver o seguinte problema: a partir de dois números que serão informados, cal- cular a adição dos mesmos. Se você fosse encarregado de efetuar essa tarefa, seria bem provável que utili- zasse os passos a seguir:

a) saber quais são os números; b) calcular a soma dos números; c) responder à questão com o valor do resultado.

Vejamos como seria resolvido esse mesmo problema em termos das operações básicas citadas anterior- mente:

a) operação de entrada de dados dos números ; b1) movimento do valor dos números entre a memória e a ULA; b2) operação aritmética de somar os 2 números; b3) movimentação do resultado da ULA para guardar na memória; c) operação de saída do resultado, que está guardado na memória, para o dispositivo de saída desejado.

1.6.3. REPETIÇÃO OU ITERAÇÃO

Essa estrutura também é conhecida por “looping” ou laço. A repetição permite que tarefas individuais sejam repetidas um número determinado de vezes ou tantas vezes quantas uma condição lógica permita. Vejamos alguns exemplos:

a) vou atirar pedras na vidraça até quebrá-la; b) baterei cinco pênaltis; c) enquanto tiver saúde e dinheiro, vou desfrutar a vida.

No exemplo (a), vai-se repetir a ação de atirar pedras na janela até que seja satisfeita a condição de que- brar a janela.

No exemplo (b), haverá a repetição da atitude de bater um pênalti um número determinado de vezes (cin- co).

No exemplo (c), a condição que me permitirá continuar desfrutando a vida é ter dinheiro e saúde.

A utilização combinada dessas 3 estruturas descritas vai permitir expressar, usando qualquer que seja a fer- ramenta, a solução para uma gama muito grande de problemas. Todas as linguagens de programação ofe- recem representantes dessas estruturas.

1.7. REFINAMENTOS SUCESSIVOS

Um algoritmo é considerado completo se os seus comandos forem do entendimento do seu destinatário.

Num algoritmos, um comando que não for do entendimento do destinatário terá que ser desdobrado em no- vos comandos, que constituirão um refinamento do comando inicial, e assim sucessivamente, até que os comandos sejam entendidos pelo destinatário.

Por exemplo, o algoritmo para calcular a média aritmética de dois números pode ser escrito da seguinte for- ma:

Algoritmo CALCULA_MÉDIA Início Receba os dois números Calcule a média dos dois números Exiba o resultado Fim

Podemos desdobrar o comando “Calcule a média dos dois números” em:

Soma os dois números Divida o resultado por 2

Após esse refinamento, o algoritmo pode ser considerado completo, a menos que o destinatário não saiba fazer as operações de adição e divisão, ou não seja capaz de entender diretamente algum comando.

O algoritmo estando completo, podemos reescrevê-lo, inserindo o refinamento na posição do comando que foi refinado. Assim sendo, obtém-se:

Algoritmo CALCULA_MÉDIA Início Receba os dois números Soma os dois números Divida o resultado por 2 Exiba o resultado Fim

Reescrever um algoritmo completo, com os refinamentos sucessivos inseridos nos seus devidos lugares, permite ter uma visão global de como o algoritmo deve ser executado.

À medida que o algoritmo passa a ser maior e mais complexo, esta visão global torna-se menos clara e, neste caso, um algoritmo apresentado com os refinamentos sucessivos separados oferece uma melhor abordagem para quem precisar entendê-lo.

EXERCÍCIOS PROPOSTOS

P1.01. Defina, com suas palavras, o que é algoritmo.

P1.02. Cite alguns algoritmos que podemos encontrar na vida quotidiana.

P1.03. De acordo com seu entendimento, qual é a característica mais importante em um algoritmo? Justifi- que a sua resposta.

P1.04. Um algoritmo não pode conter um comando como “Escreva todos os números inteiros positivos”. Por quê?

P1.05. Suponha que temos um robô a nossa disposição. Esse robô chama-se MANNY e precisa ser ensi- nado a fazer determinadas tarefas. Para ensinar o MANNY, vamos fazer uso do português para passar-lhe as instruções necessárias à execução de cada atividade. Escreva os passos necessários para o nosso robô executar: a) encher uma bacia com água; b) trocar uma lâmpada no teto de sua casa; c) trocar o pneu de um carro; d) calcular a sua idade daqui a 20 anos; e) calcular a média de um aluno com 3 notas.

P1.06. Cite as formas básicas para se representar algoritmos, definindo-as.

P1.07. Em sua opinião, qual a melhor forma de se representar algoritmos? Justifique sua resposta.

P1.08. Descreva, com suas próprias palavras, o funcionamento do nosso computador hipotético.

P1.09. Especifique soluções, em termos das operações básicas do nosso computador, para os itens (d) e (e) do exercício P1.05.

P1.10. Quais as estruturas básicas de controle dos algoritmos? Explique cada uma delas.

P1.11. Identifique nas respostas do exercício P1.05 a utilização das estruturas básicas de controle de fluxo.

P1.12. Escreva o algoritmo solução para o problema de multiplicar dois números (a solução deve ser ex- pressa em alto nível).

P1.13. Resolva o P1.09 em termos de uma linguagem de alto nível.

P1.14. Em que consiste a técnica de "refinamentos sucessivos"?

P1.15. É comum ouvirmos programadores experimentados afirmarem: “algoritmos ... aprendi e nunca usei na prática ... não vejo necessidade...". Discuta esse tipo de afirmativa.

EXERCÍCIOS PROPOSTOS

P2.01. Dê o conceito de variável.

P2.02. Exemplifique o uso da operação de Atribuição.

P2.03. Qual a finalidade de uma operação de entrada? Dê exemplos.

P2.04. Qual a finalidade de uma operação de saída? Dê exemplos.

P2.05. Escreva os comandos necessários para:

a) ler o nome de uma pessoa b) ler as 3 notas de um aluno c) ler o peso e altura de uma pessoa

2.4. ESTRUTURA SEQÜENCIAL

Num algoritmo, os comandos deverão ser executados numa seqüência linear, seguindo-se o texto em que estão escritos, de cima para baixo, se não houver indicação em contrário.

Nesta apostila, os algoritmos são iniciados com a palavra início e finalizados com a palavra fim.

Linguagem Algorítmica: Fluxograma:

inicio comando- comando-

... comando-n fim

Exemplo:

início leia A,B SOMA  A + B escreva SOMA fim

EXERCÍCIOS PROPOSTOS

P2.06. Em que consiste a estrutura seqüencial?

P2.07. Determine os valore finais de A, B e C após a execução do trecho do algoritmo abaixo:

A  0 A B C B  1 C  A + B A  A + 1 B  A + B + C

P2.08. A ordem das atribuições é importante? AB e CA tem o mesmo efeito de CA e AB?

INICIO
FIM

Comando-

Comando-

Comando-n

P2.09. Em quais dos seguintes pares é importante a ordem dos comandos?

a) X  Y b) X  Y c) X  Z d) Z  Y Y  X Z  X X  Y X  Y

P2.10. Escreva um algoritmo que leia duas variáveis inteiras e troque o conteúdo entre elas.

P2.11. Escreva um algoritmo que leia um número inteiro positivo e exiba o dobro do mesmo.

P2.12. Escreva um algoritmo para calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso 6 e nota2= peso 4)

P2.13. Escreva um algoritmo para calcular e exibir o comprimento de uma circunferência, sendo dada o va- lor de seu raio.

P2.14. Escreva um algoritmo para ler uma temperatura dada na escala Fahrenheit e exibir o equivalente em Celsius.

P2.15. Escreva um algoritmo para calcular a área de um triângulo, sendo dados a sua base e a sua altura.

2.5. ESTRUTURA CONDICIONAL

A estrutura condicional permite a escolha do grupo de ações e estruturas a ser executado quando determi- nadas condições (expressões lógicas) são ou não satisfeitas.

Esta estrutura pode se apresentar de duas formas.

C = F −
ÁREA = BASE ⋅^ ALTURA

C = 2 π R

EXERCÍCIOS PROPOSTOS

P2.16. Qual a utilidade da estrutura condicional?

P2.17. Qual a diferença entre a estrutura condicional simples e a composta?

P2.18. Escreva um algoritmo para ler um número e determinar se ele é maior, igual ou menor que zero.

P2.19. Escreva um algoritmo que leia dois números e exiba-os em ordem crescente.

P2.20. Escreva um algoritmo que leia dois números e exiba o maior deles.

P2.21. Deseja-se calcular a conta de consumo de energia elétrica de um consumidor. Para isto, escreva um algoritmo que leia o código do consumidor, o preço do Kw e a quantidade de Kw consumido, e exiba o código do consumidor e o total a pagar.

  • total a pagar = preço x quantidade
  • total a pagar mínimo = R$ 11,

P2.22. Escreva um algoritmo que determine o grau de obesidade de uma pessoa, sendo fornecido o peso e a altura da pessoa. O grau de obesidade é determinado pelo índice da massa corpórea (Massa = Peso / Altura2 ) através da tabela abaixo: MASSA CORPÓ- REA

GRAU DE OBESI-
DADE

< 26 Normal ≥ 26 e < 30 Obeso ≥ 30 Obeso Mórbido

P2.23. Faça um algoritmo que, dado as três notas de um aluno, determine e exiba a sua média final e o seu conceito, sabendo-se que:

  • a média final é calculada pela média aritmética das 3 notas;
  • o conceito é determinado de com base na tabela abaixo: MÉDIA FINAL CONCEITO ≥ 8,0 A ≥ 5,0 e < 8,0 B < 5,0 C P2.24. O Botafogo Futebol Clube deseja aumentar o salário de seus jogadores. O reajuste deve obedecer a seguinte tabela: SALÁRIO ATUAL (R$) AUMENTO 0,00 a 1.000,00 20% 1.000,01 a 5.000,00 10% acima de 5.000,00 0%

Escrever um algoritmo que leia o nome e o salário atual de um jogador, e exiba o nome, o salário atual e o salário reajustado.

P2.25. Faça um algoritmo para calcular a conta final de um hóspede de um hotel fictício, considerando que:

a) serão lidos o nome do hóspede, o tipo do apartamento utilizado (A, B, C ou D), o número de diá- rias utilizadas pelo hóspede e o valor do consumo interno do hóspede; b) o valor da diária é determinado pela seguinte tabela:

TIPO DO APTO. VALOR DA DIÁRIA (R$) A 150, B 100, C 75, D 50,

c) o valor total das diárias é calculado pela multiplicação do número de diárias utilizadas pelo valor da diária; d) o subtotal é calculado pela soma do valor total das diárias e o valor do consumo interno; e) o valor da taxa de serviço equivale a 10% do subtotal; f) a total geral resulta da soma do subtotal com a taxa de serviço. g) escreva a conta final contendo: o nome do hóspede, o tipo do apartamento, o número de diárias utilizadas, o valor unitário da diária, o valor total das diárias, o valor do consumo interno, o subto- tal, o valor da taxa de serviço e o total geral.

2.6. ESTRUTURA DE REPETIÇÃO

A estrutura de repetição permite que uma seqüência de comandos seja executada repetidamente até que uma determinada condição não seja satisfeita. Utilizaremos o comando enquanto para representar esta es- trutura. Sua sintaxe é:

Linguagem Algorítmica: Fluxograma:

enquanto condição comando-A 1 comando-A 2

... comando-An

Exemplo:

... leia SENHA enquanto SENHA <> 'ASPER' escreva 'Senha inválida' escreva 'Digite a senha novamente' leia SENHA ...

EXERCÍCIOS PROPOSTOS

P2.26. Qual a utilidade da estrutura de repetição?

P2.27. Faça o acompanhamento da execução do trecho de algoritmo abaixo e preencha a Tabela de Variá- veis:

TRECHO DE ALGORITMO TABELA DE VARIÁVEIS N L (^) N6 Saída N  0 L  1 enquanto N ≠ 6 L  L. (-1) N  N + 1 se L > 0 então escreva N

Condição

Comando-A 1

Comando-A 2

Comando-An

V

F

P2.41. Num frigorífico existem 90 bois. Cada boi traz preso em seu pescoço um cartão contendo seu nú- mero de identificação e seu peso. Faça um algoritmo que escreva o número e o peso do boi mais gordo e do boi mais magro (supondo que não haja empates).

P2.42. Faça um algoritmo que leia a altura de um grupo de 20 pessoas, calcule e exiba:

  • a maior altura do grupo;
  • a altura média;
  • o número de pessoas com altura superior a 2 metros.

P2.43. Faça um algoritmo que, para um número indeterminado de pessoas:

  • leia a idade de cada pessoa, sendo que a leitura da idade 0 (zero) indica o fim dos dados (flag) e não deve ser considerada;
  • calcule e escreva o número de pessoas;
  • calcule e escreva a idade média do grupo;
  • calcule e escreva a menor idade e a maior idade.

P2.44. Faça um algoritmo que leia uma lista de letras terminada pela letra Z. Ao final, o algoritmo deve mostrar a quantidade lida de cada vogal.

P2.45. Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado no mercado. Para isto, forneceu o sexo do entrevistado (M-masculino ou F-fe- minino) e sua resposta (S-sim ou N-não). Sabendo-se que foram estrevistadas 2.000 pessoas, fazer um algoritmo que calcule e escreva:

  • número de pessoas que responderam sim (S);
  • número de pessoas que responderam não (N);
  • a porcentagem de pessoas do sexo feminino (F);
  • a porcentagem de pessoas do sexo masculino (M);
  • a porcentagem de pessoas do sexo feminino (F) que responderam sim (S);
  • a porcentagem de pessoas do sexo masculino (M) que responderam não (N).

P2.46. Foi feita um pesquisa de audiência de canal de TV em várias casas de um certa cidade, num deter- minado dia. Para cada casa visitada, é fornecido o número do canal (5, 7, 10 ou 12) e o número de pessoas que o estavam assistindo naquela casa. Fazer um algoritmo que:

  • leia um número indeterminado de dados, sendo que o flag corresponde ao número de canal igual a 0 (zero);
  • calcule e escreva a porcentagem de audiência de cada emissora.

P2.47. Escreva um algoritmo que leia o número de andares de um prédio e, a seguir, para cada andar do prédio, leia o número de pessoas que entraram e saíram do elevador. Considere que o elevador está vazio e está subindo, os dados se referem a apenas uma subida do elevador e que o número de pessoas dentro do elevador será sempre maior ou igual a zero. Se o número de pessoas, após a entrada e saída, for maior que 15, deve ser mostrada a mensa- gem "Excesso de passageiros. Devem sair X", sendo X o número de pessoas que devem sair do elevador, de modo que seja obedecido o limite de 15 passageiros. Após a entrada e saída no último andar, o algoritmo deve mostrar quantas pessoas permaneceram no elevador para descer.

P2.48. Faça um algoritmo que leia vários códigos do jogador (1 ou 2) que ganhou o ponto em uma partida de pingue-pongue, e responda quem ganha a partida. A partida chega ao final se um dos jogadores chega a 21 pontos e a diferença de pontos entre os jo- gadores é maior ou igual a dois. Caso contrário, ganha aquele que, com mais de 21 pontos, consiga colocar uma vantagem de dois pontos sobre o adversário.

Capítulo 3

LINGUAGEM DE PROGRAMAÇÃO PASCAL

3.1. INTRODUÇÃO

Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas, é necessário que ele seja programado , isto é, que seja transcrito para uma linguagem que o computador possa entender, direta ou indiretamente.

3.1.1. LINGUAGENS DE PROGRAMAÇÃO

Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com significado inter- pretável. Portanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo computador.

Logicamente, a linguagem que nós utilizamos em nosso cotidiano é diferente da linguagem utilizada pela máquina. A máquina trabalha somente com códigos numéricos (linguagem de máquina), baseados nos nú- meros 0 e 1 (sistema binário), que representam impulsos elétricos, ausente e presente.

Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa).

Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem humana; baixo nível para as mais semelhantes à linguagem de máquina.

3.1.2. TRADUTORES

Para que um computador possa "entender" um programa escrito em uma linguagem de alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a linguagem de máquina. Este meio pode ser de dois tipos: compilador e interpretador.

COMPILADOR - traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equivalente escrito em linguagem de máquina (programa-objeto).

INTERPRETADOR - traduz e envia para execução, instrução por instrução e o programa permanece na for- ma fonte.

Exemplos de linguagens de programação: PASCAL, C, CLIPPER, BASIC, COBOL, etc.

Programa Fonte

Ling. Alto Nível

COMPILADOR

Programa Fonte

Ling. Alto Nível

Programa Objeto

Ling. Baixo Nível

EXECUÇÃO Resultados

Programa Fonte

Ling. Alto Nível

INTERPRETADOR

Programa Fonte

Ling. Alto Nível

EXECUÇÃO Resultados