• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Cap08
 

Cap08

on

  • 2,505 views

 

Statistics

Views

Total Views
2,505
Views on SlideShare
2,505
Embed Views
0

Actions

Likes
0
Downloads
21
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Cap08 Cap08 Document Transcript

    • Capítulo 8ESTRUTURAS DE CONTROLE DO FLUXO DE EXECUÇÃO Até o momento os algoritmos estudados utilizam apenas instruções primitivas deatribuição, e de entrada e saída de dados. Qualquer conjunto de dados fornecido a um algoritmodestes será submetido ao mesmo conjunto de instruções, executadas sempre na mesmasequência. No entanto, na prática muitas vezes é necessário executar ações diversas em função dosdados fornecidos ao algoritmo. Em outras palavras, dependendo do conjunto de dados de entradado algoritmo, deve-se executar um conjunto diferente de instruções. Além disso, pode sernecessário executar um mesmo conjunto de instruções um número repetido de vezes. Em resumoé necessário controlar o fluxo de execução das instruções (a sequência em que as instruções sãoexecutadas num algoritmo) em função dos dados fornecidos como entrada do mesmo. De acordo com o modo como o controle do fluxo de instruções de um algoritmo é feito, asestruturas básicas de controle são classificadas em:  Estruturas sequenciais  Estruturas de decisão  Estruturas de repetição1. COMANDOS COMPOSTOS Um comando composto é um conjunto de zero ou mais comandos (ou instruções) simples,como atribuições e instruções primitivas de entrada ou saída de dados, ou alguma das construçõesapresentadas neste capítulo. Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definiçãodas estruturas básicas de controle de execução.2. ESTRUTURA SEQUENCIAL Na estrutura sequencial os comandos de um algoritmo são executados numa sequênciapré-estabelecida. Cada comando é executado somente após o término do comando anterior. Uma estrutura sequencial é delimitada pelas palavras-reservadas Início e Fim e contémbasicamente comandos de atribuição, comandos de entrada e comandos de saída. Os algoritmosdo capítulo anterior são algoritmos que utilizam uma única estrutura sequencial. Um algoritmo puramente sequencial é aquele cuja execução é efetuada em ordemascendente dos números que identificam cada passo. A passagem de um passo ao seguinte énatural e automática, e cada passo é executado uma única vez.
    • 3. ESTRUTURAS DE DECISÃO Neste tipo de estrutura o fluxo de instruções a ser seguido é escolhido em função doresultado da avaliação de uma ou mais condições. Uma condição é uma expressão lógica. A classificação das estruturas de decisão é feita de acordo com o número de condições quedevem ser testadas para que se decida qual o caminho a ser seguido. Segundo esta classificação,têm-se três tipos de estruturas de decisão:  Estrutura de Decisão Simples (Se ... então)  Estrutura de Decisão Composta (Se ... então ... senão)  Estrutura de Decisão Múltipla do Tipo Escolha (Escolha ... Caso ... Outrocaso) Os algoritmos puramente sequenciais podem ser usados na solução de um grande númerode problemas, porém existem problemas que exigem o uso de alternativas de acordo com asentradas do mesmo. Nestes algoritmos, as situações são resolvidas através de passos cuja execução ésubordinada a uma condição. Assim, o algoritmo conterá passos que são executados somente sedeterminadas condições forem observadas. Um algoritmo em que se tem a execução de determinados passos subordinada a umacondição é denominado algoritmo com seleção.3.1. ESTRUTURAS DE DECISÃO SIMPLES ( SE ... ENTÃO ) Nesta estrutura uma única condição (expressão lógica) é avaliada. Dependendo doresultado desta avaliação, um comando ou conjunto de comandos serão executados (se aavaliação for verdadeira) ou não serão executados (se a avaliação for falsa). No diagrama de blocos a estrutura para instrução se...então é representado por: A sintaxe possível para a estrutura de decisão simples é: se <condição> entao <sequência_de_comandos> fimse
    • A semântica desta construção é a seguinte: a condição é avaliada:  Se o resultado for verdadeiro, então a sequência_de_comandos será executada. Ao término de sua execução, o fluxo do algoritmo prossegue pela instrução seguinte à palavra reservada fimse.  No caso da condição ser falsa, o fluxo do algoritmo prossegue pela instrução seguinte à palavra reservada fimse, sem executar a sequência_de_comandos. Exemplo de algoritmo que lê um número e escreve se o mesmo é maior que 10:algoritmo “exemplo_estrutura_de_decisão_simples”var X : inteiroinicioescreva (“Digite um valor”)leia(X)se X > 10 entao escreva (“X é maior que 10”)fimsefimalgoritmo3.2. ESTRUTURAS DE DECISÃO COMPOSTA ( SE ... ENTÃO ... SENÃO ) Nesta estrutura uma única condição (expressão lógica) é avaliada. Se o resultado destaavaliação for verdadeiro, um comando ou conjunto de comandos serão executados. Casocontrário, ou seja, quando o resultado da avaliação for falso, um outro comando ou um outroconjunto de comandos serão executados. No diagrama de blocos a estrutura para instrução se...então...senão é representadopor: A sintaxe possível para a estrutura de decisão composta é: se <expressão-lógica> entao <seqüência-de-comandos-1> senao <seqüência-de-comandos-2> fimse
    • A semântica desta construção é a seguinte: a condição é avaliada:  Se o resultado for verdadeiro, então a sequência_de_comandos-1 será executada. Ao término de sua execução, o fluxo do algoritmo prossegue pela instrução seguinte à palavra reservada fimse.  Nos casos em que a condição é avaliada como falsa, a seuêncvia_de_comandos-2 será executada. Ao término de sua execução, o fluxo do algoritmo prossegue pela instrução seguinte à palavra reservada fimse. Exemplo de algoritmo que lê um número e escreve se o mesmo é ou não maior que 10:algoritmo “exemplo_estrutura_de_decisão_composta”var X : inteiroinicioleia(X)se X > 10 entao escreva(“X é maior que 10”)senao escreva(“X não é maior que 10”)fimsefimalgoritmo3.3. ESTRUTURAS DE DECISÃO MÚLTIPLA DO TIPO CASO ( ESCOLHA... CASO ... OUTROCASO ) Este tipo de estrutura é uma generalização da construção Se, onde somente uma condiçãoera avaliada e dois caminhos podiam ser seguidos. Na estrutura de decisão do tipo Caso podehaver uma ou mais condições a serem testadas e um comando diferente associado a cada umadestas. No diagrama de blocos a estrutura para instrução escolha...caso...outrocaso érepresentado por:
    • A sintaxe da construção de Caso é: escolha <expressão-de-seleção> caso <exp11>, <exp12>, ..., <exp1n> <seqüência-de-comandos-1> caso <exp21>, <exp22>, ..., <exp2n> <seqüência-de-comandos-2> ... outrocaso <seqüência-de-comandos-extra> fimescolha Seu funcionamento é o seguinte: ao entrar-se numa construção do tipo CASO, uma variávelé escolhida e depois testada com a condição expressa em caso <exp>. Se for verdadeira, asequência-de-comandos-1 é executada e após seu término, o fluxo de execução prossegue pelaprimeira instrução seguinte à palavra reservada fimescolha. Se esta condição for falsa, o fluxo doprograma passa para o próximo caso <exp> e testa a condição seguindo o mesmocomportamento descrito acima até encontrar a palavra reservada fimescolha. Um exemplo de aplicação desta construção é o algoritmo para reajustar o salário de acordocom a função. Se for técnico, aumentar o salário 50%, se for gerente, aumentar 30% e se for outrocargo, aumentar 20%.algoritmo "exemplo_estrutura_do_tipo_escolha"var salario, salario_reaj : real prof : caractereinicioescreva("Digite o salário: ")leia (salario)escreva("Digite a profissão: ")leia(prof)escolha profcaso "Técnico" salario_reaj := 1.5 * salariocaso "Gerente" salario_reaj := 1.3 * salariooutrocaso salario_reaj := 1.2 * salariofimescolhaescreva("Salário reajustado: ", salario_reaj)fimalgoritmo
    • 4. ESTRUTURAS DE REPETIÇÃO São muito comuns as situações em que se deseja repetir um determinado trecho de umprograma um certo número de vezes. Por exemplo, pode-se citar o caso de um algoritmo quecalcula a soma dos números impares entre 500 e 1000 ou então um algoritmo que escreve osnúmeros maiores que 0 enquanto a sua soma não ultrapasse 1000. As estruturas de repetição são muitas vezes chamadas de Laços ou também de Loops. A classificação das estruturas de repetição é feito de acordo com o conhecimento prévio donúmero de vezes que o conjunto de comandos será executado. Assim os Laços se dividem em:  Laços Contados  quando se conhece previamente quantas vezes o comando composto no interior da construção será executado;  Laços Condicionais  quando não se conhece de antemão o número de vezes que o conjunto de comandos no interior do laço será repetido, pelo fato do mesmo estar amarrado a uma condição sujeita à modificação pelas instruções do interior do laço. Todo algoritmo que possui um ou mais de seus passos repetidos um determinado númerode vezes denomina-se algoritmo com repetição. Com a utilização de estruturas de repetição para a elaboração de algoritmos, torna-senecessário o uso de dois tipos de variáveis para a resolução de diversos tipos de problemas:variáveis contadoras e variáveis acumuladoras. Uma variável contadora é uma variável que recebe um valor inicial, geralmente 0 (zero)antes do início de uma estrutura de repetição, e é incrementada no interior da estrutura de umvalor constante, geralmente 1, conforme o exemplo abaixo: ... cont := 0 <estrutura_de_repetição> ... cont := cont + 1 ... <fim_da_estrutura_de_repetição> ... Uma variável acumuladora é uma variável que recebe um valor inicial, geralmente 0 (zero)antes do início de uma estrutura de repetição, e é incrementada no interior da estrutura de umvalor variável, geralmente a variável usada na estrutura de controle, conforme o exemplo abaixo: ... soma := 0 <estrutura_de_repetição_com_variável_x> ... soma := soma + x ... <fim_da_estrutura_de_repetição> ...
    • 4.1. LAÇOS CONTADOS4.1.1. Laços Contados (Para ... faça ) Os laços contados são úteis quando se conhece previamente o número exato de vezes quese deseja executar um determinado conjunto de comandos. Então, este tipo de laço nada mais éque uma estrutura dotada de mecanismos para contar o número de vezes que o corpo do laço (ouseja, o comando composto em seu interior) é executado. No diagrama de blocos a estrutura para instrução para...faça é representado por: Uma das sintaxes possíveis usadas em algoritmos para os laços contados é:para <variável> de <valor-inicial> ate <valor-limite> [passo <incremento>] faca <seqüência-de-comandos>fimpara<variável > É a variável contadora que controla o número de repetições do laço. Deve ser necessariamente uma variável do tipo inteiro, como todas as expressões deste comando.<valor-inicial> É uma expressão que especifica o valor de inicialização da variável contadora antes da primeira repetição do laço.<valor-limite > É uma expressão que especifica o valor máximo que a variável contadora pode alcançar.<incremento > É opcional. Quando presente, precedida pela palavra passo, é uma expressão que especifica o incremento que será acrescentado à variável contadora em cada repetição do laço. Quando esta opção não é utilizada, o valor padrão de <incremento> é 1. Vale a pena ter em conta que também é possível especificar valores negativos para <incremento>. Por outro lado, se a avaliação da expressão <incremento > resultar em valor nulo, a execução do algoritmo será interrompida, com a impressão de uma mensagem de erro.fimpara Indica o fim da seqüência de comandos a serem repetidos. Cada vez que o programa chega neste ponto, é acrescentado à variável contadora o valor de <incremento >, e comparado a <valor-limite >. Se for menor ou igual (ou maior ou igual, quando <incremento > for negativo), a seqüência de comandos será executada mais uma vez; caso contrário, a execução prosseguirá a partir do primeiro comando que esteja após o fimpara.
    • Exemplo de um algoritmo que escreve a tabuada de um número específico:algoritmo "tabuada"var i, tab, num : inteiroinicioescreval("TABUADA DE MULTIPLICAÇÃO")escreva("Tabuada: ")leia(tab)escreva("Até que número: ")leia(num)para i de 1 ate num faca escreval (i, " x ", tab, " = ", i * tab)fimparafimalgoritmo No exemplo a seguir, os números de 1 a 10 são exibidos em ordem crescente.algoritmo "Números de 1 a 10"var j: inteiroiniciopara j de 1 ate 10 faca escreva (j:3)fimparafimalgoritmo Importante: Se, logo no início da primeira repetição, <valor-inicial> for maior que <valor-limite> (ou menor, quando <incremento> for negativo), o laço não será executado nenhuma vez. Oexemplo a seguir não imprime nada.algoritmo "Numeros de 10 a 1 (não funciona)"var j: inteiroiniciopara j de 10 ate 1 faca escreva (j:3)fimparafimalgoritmo
    • Este outro exemplo, no entanto, funcionará por causa do passo -1:algoritmo "Numeros de 10 a 1 (este funciona)"var j: inteiroiniciopara j de 10 ate 1 passo -1 faca escreva (j:3)fimparafimalgoritmo4.2. LAÇOS CONDICIONAIS Laços condicionais são aqueles cujo conjunto de comandos em seu interior é executadoaté que uma determinada condição seja satisfeita. Ao contrário do que acontece nos laçoscontados, nos laços condicionais não se sabe de antemão quantas vezes o corpo do laço seráexecutado. As construções que implementam laços condicionais mais comuns nas linguagens deprogramação modernas são:  Enquanto  laço condicional com teste no início  Repita  laço condicional com teste no final Nos laços condicionais a variável que é testada, tanto no início quanto no final do laço,deve sempre estar associada a um comando que a atualize no interior do laço. Caso isso nãoocorra, o programa ficará repetindo indefinidamente este laço, gerando uma situação conhecidacomo “laço infinito”.4.2.1. Laços Condicionais com Teste no Início (Enquanto ... faça ) Caracteriza-se por uma estrutura que efetua um teste lógico no início de um laço,verificando se é permitido ou não executar o conjunto de comandos no interior do laço. No diagrama de blocos a estrutura Enquanto ... faça é representada por:
    • Uma das sintaxes possíveis usadas para essa construção é:enquanto <expressão-lógica> faca <seqüência-de-comandos>fimenquanto<expressão-lógica> Esta expressão é avaliada antes de cada repetição do laço. Quando seu resultado for VERDADEIRO, <seqüência-de-comandos> é executada.fimenquanto Indica o fim da <seqüência-de-comandos> que será repetida. Cada vez que a execução atinge este ponto, volta-se ao início do laço para que <expressão-lógica> seja avaliada novamente. Se o resultado desta avaliação for VERDADEIRO, a <seqüência-de- comandos> será executada mais uma vez; caso contrário, a execução prosseguirá a partir do primeiro comando após fimenquanto. Uma vez dentro do corpo do laço, a execução somente abandonará o mesmo quando acondição for falsa. O usuário deste tipo de construção deve estar atento à necessidade de que emalgum momento a condição deverá ser avaliada como falsa. Caso contrário, o programapermanecerá indefinidamente no interior do laço (laço infinito). Neste tipo de laço condicional a variável a ser testada deve possuir um valor associadoantes da construção do laço. Um exemplo desta construção é o algoritmo abaixo que escreve os números maiores que 0enquanto a sua soma não ultrapasse 1000. algoritmo "exemplo_enquanto" var soma, num : inteiro inicio num := 1 soma:= num Enquanto soma < 1000 faca escreval (num) num := num + 1 soma := soma + num fimenquanto fimalgoritmo4.2.2. Laços Condicionais com Teste no Final (Repita ... até ) Caracteriza-se por uma estrutura que efetua um teste lógico no final de um laço,verificando se é permitido ou não executar novamente o conjunto de comandos no interior domesmo.
    • No diagrama de blocos a estrutura Repita ... até é representada por: Uma das sintaxes possíveis usadas para essa construção é:repita <seqüência-de-comandos>ate <expressão-lógica>repita Indica o início do laço.ate <expressão-lógica> Indica o fim da <seqüência-de-comandos> a serem repetidos. Cada vez que o programa chega neste ponto, <expressão-lógica> é avaliada: se seu resultado for FALSO, os comandos presentes entre esta linha e a linha repita são executados; caso contrário, a execução prosseguirá a partir do primeiro comando após esta linha. Seu funcionamento é bastante parecido ao da construção Enquanto. O comando éexecutado uma vez. A seguir, a condição é testada: se ela for falsa, o comando composto éexecutado novamente e este processo é repetido até que a condição seja verdadeira, quandoentão a execução prossegue pelo comando imediatamente seguinte ao final da construção. Esta construção difere da construção Enquanto pelo fato de o comando composto serexecutado uma ou mais vezes (pelo menos uma vez), ao passo que na construção Enquanto ocomando composto é executado zero ou mais vezes (possivelmente nenhuma). Isto aconteceporque na construção Repita o teste é feito no final da construção, ao contrário do que acontecena construção Enquanto, onde o teste da condição é efetuado no início da mesma. A construção Repita também difere da construção Enquanto no que se refere àinicialização da variável, visto que na construção Repita a variável pode ser inicializada ou lidadentro do laço.
    • O algoritmo que lê um número não determinado de vezes um valor do teclado e escreve ovalor e o seu quadrado, até que seja digitado um valor par, é um exemplo desta estrutura:algoritmo "exemplo_repita"var num : inteiroiniciorepitaescreva("Entre com número inteiro: ")leia (num)escreval ("O quadrado de", num, " é:", num * num)escrevalate num mod 2 = 0fimrepitafimalgoritmo5. ESTRUTURAS DE CONTROLE ENCADEADAS OU ANINHADAS Um aninhamento ou encadeamento é o fato de se ter qualquer um dos tipos de construçãoapresentados anteriormente dentro do conjunto de comandos (comando composto) de uma outraconstrução. Em qualquer tipo de aninhamento é necessário que a construção interna estejacompletamente embutida na construção externa. A figura abaixo ilustra aninhamentos válidos e inválidos. Exemplos de aninhamentos (a) válidos e (b) inválidos
    • Nos algoritmos, a correta formulação de condições, isto é, expressões lógicas, é defundamental importância, visto que as estruturas de seleção são baseadas nelas. As diversasformulações das condições podem levar a algoritmos distintos. Considerando o problema: “Dado um par de valores x, y, que representam as coordenadas de um ponto no plano,determinar o quadrante ao qual pertence o ponto, ou se está sobre um dos eixos cartesianos.” A solução do problema consiste em determinar todas as combinações de x e y para asclasses de valores positivos, negativos e nulos. Os algoritmos podem ser baseados em estruturas concatenadas uma em sequência a outraou em estruturas aninhadas uma dentro da outra, de acordo com a formulação da condição. O algoritmo a seguir utiliza estruturas concatenadas.algoritmo "estruturas_concatenadas"var x, y : inteiroinicioleia(x, y)se (x=0) e (y=0) entao escreva("Ponto na origem")fimsese (x=0) e (y<>0) entao escreva("Ponto sobre o eixo y")fimsese (x<>0) e (y=0) entao escreva("Ponto sobre o eixo x")fimsese (x>0) e (y>0) entao escreva("Ponto no quandrante 1")fimsese (x<0) e (y>0) entao escreva("Ponto no quandrante 2")fimsese (x<0) e (y<0) entao escreva("Ponto no quandrante 3")fimsese (x>0) e (y<0) entao escreva("Ponto no quandrante 4")fimsefimalgoritmo O algoritmo a seguir utiliza estruturas aninhadas ou encadeadas.
    • algoritmo "estruturas_aninhadas"var x, y : inteiroinicioleia(x, y)se x<>0 entao se y=0 entao escreva("Ponto sobre o eixo x") senao se x>0 entao se y>0 entao escreva("Ponto no quadrante 1") senao escreva("Ponto no quadrante 4") fimse senao se y>0 entao escreva("Ponto no quadrante 2") senao escreva("Ponto no quadrante 3") fimse fimse fimsesenao se y=0 entao escreva("Ponto na origem") senao escreva("Ponto sobre o eixo y") fimsefimsefimalgoritmo As estruturas concatenadas tem a vantagem de tornar o algoritmo mais legível, facilitandoa correção do mesmo em caso de erros. As estruturas aninhadas ou encadeadas tem a vantagemde tornar o algoritmo mais rápido pois são efetuados menos testes e menos comparações, o queresulta num menor número de passos para chegar ao final do mesmo.Normalmente se usa estruturas concatenadas nos algoritmos devido à facilidade de entendimentodas mesmas e estruturas aninhadas ou encadeadas somente nos casos em que seu uso éfundamental.EXERCÍCIOS PROPOSTOSQuestão 01:Escreva um programa que leia um número inteiro e determine se ele é par ou ímpar.Questão 02:Deseja-se calcular a conta de consumo de energia elétrica de um consumidor. Para isto, escrevaum programa que leia o código do consumidor, o preço do Kw e a quantidade de Kw consumido, eexiba o código do consumidor e o total a pagar.  total a pagar = preço x quantidade / total a pagar mínimo = R$ 11,20
    • Questão 03:Faça um programa que, dado as três notas de um aluno, determine e exiba a sua média final e oseu 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 CQuestão 04:Escreva um programa que determine o grau de obesidade de uma pessoa, sendo fornecido o pesoe a altura da pessoa. O grau de obesidade é determinado pelo índice da massa corpórea (Massa =Peso / Altura2 ) através da tabela abaixo: IMC Grau de Obesidade < 18,5 Magreza 18,5 – 24,9 Saudável 25,0 – 29,9 Sobrepeso 30,0 – 34,9 Obesidade Grau I 35,0 – 39,9 Obesidade Grau II ≥ 40,0 Obesidade Grau IIIQuestão 06:Faça um programa para calcular a conta final de um hóspede de um hotel, 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 Apartamento Valor da Diária (R$) A 150,00 B 100,00 C 75,00 D 50,00 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) o 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 subtotal, o valor da taxa de serviço e o total geral.Questão 07:A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3 grupos de indústriasque são altamente poluentes do meio ambiente. O índice de poluição aceitável varia de 0,05 até0,25. Se o índice sobe para 0,3 as indústrias do 1º grupo são intimadas a suspenderem suasatividades, se o índice crescer para 0,4 as industrias do 1º e 2º grupo são intimadas a suspenderemsuas atividades, se o índice atingir 0,5 todos os grupos devem ser notificados a paralisarem suasatividades. Faça um diagrama de bloco que leia o índice de poluição medido e emita a notificaçãoadequada aos diferentes grupos de empresas.Questão 08:Uma rainha requisitou os serviços de um monge e disse-lhe que pagaria qualquer preço. O monge,necessitando de alimentos, indagou à rainha sobre o pagamento, se poderia ser feito com grãosde trigo dispostos em um tabuleiro de xadrez, de tal forma que o primeiro quadro deveria conterapenas um grão e os quadros subseqüentes, o dobro do quadro anterior. A rainha achou otrabalho barato e pediu que o serviço fosse executado, sem se dar conta de que seria impossívelefetuar o pagamento. Faça um algoritmo para calcular o número de grãos que o monge esperavareceber.Questão 09:Deseja-se calcular o imposto de renda de um contribuinte. Para isto, escreva um programa que: a) leia os seguintes dados do contribuinte: CPF, nome, rendimento anual, imposto retido na fonte, contribuição previdenciária, despesas médicas, número de dependentes; b) é deduzido o valor de R$ 1.080,00 por cada dependente; c) cálculo do valor total das deduções: contribuição previdenciária + despesas médicas + dedução dos dependentes; d) cálculo da base de cálculo: rendimento anual – total das deduções; e) com base na tabela abaixo: Base de Cálculo Alíquota Parcela a Deduzir Até 10.800,00 Isento - De 10.800,01 até 21.600,00 15% 1.620,00 Acima de 21.600,01 25% 3.780,00 Cálculo do imposto devido: ( (base de cálculo * alíquota) - parcela a deduzir )
    • f) haverá imposto a pagar se a diferença entre o imposto devido e o imposto retido na fonte for positiva; caso contrário, haverá imposto a restituir. g) exiba todos os dados lidos e calculados.Questão 10:Faça o acompanhamento da execução do programa abaixo e preencha a Tabela de Variáveis: ... N := 0; L := 1; enquanto N <> 6 faca L := L * (-1); N := N + 1; se L > 0 entao escreva(N); fimse fimenquanto ... Tabela de Variáveis N L SaídaQuestão 11:Faça um programa que leia um número N, some todos os números inteiros de 1 a N, e mostre oresultado obtido.Questão 12:Escreva um programa que leia um conjunto de 100 números inteiros positivos e determine omaior deles.
    • Questão 13:Escreva um programa que calcule o fatorial de um número inteiro lido, sabendo-se que:  N! = 1 x 2 x 3 x ... x N-1 x N  0! = 1Questão 14:Um número é, por definição, primo se ele não tem divisores, exceto 1 e ele próprio. Escreva umprograma que leia um número e determine se ele é ou não primo.Questão 15:Faça um programa 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.Questão 16:O cardápio de uma casa de lanches, especializada em sanduíches, é dado abaixo. Escreva umprograma que leia o código e a quantidade de cada item comprado por um freguês, calcule e exibao total a pagar. Obs: A leitura do código "X" indica o fim dos itens. Código Produto Preço (R$) H Hamburguer 1,50 C Cheeseburguer 1,80 Q Queijo Prato 1,00Questão 17:Uma certa firma fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de umnovo produto lançado no mercado. Para isto, forneceu o sexo do entrevistado (M-masculino ou F-feminino) e sua resposta (S-sim ou N-não). Sabendo-se que foram entrevistadas 2.000 pessoas,fazer um programa 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);