APOSTILA logica_programacao

61
1 Lógica de Programação ESCOLA Lógica de Programação

Transcript of APOSTILA logica_programacao

  • 1Lgica de Programao

    E S C O L A

    Lgica de Programao

  • 2Escola Alcides Maya - Primeiro MduloSumrio

    Lgica de Programao1 INTRODUO ............................................................................................................................... 41.1 Definies bsicas .......................................................................................................................................................... 41.2 Necessidade do uso da lgica ........................................................................................................................................ 41.3 Uso da lgica no desenvolvimento de programas .......................................................................................................... 41.4 Diferenciao de nomenclaturas .................................................................................................................................... 52 INTRODUO LGICA .......................................................................................................... 62.1 Princpios de resoluo de problemas ............................................................................................................................ 62.2 Particularidades entre lgicas ........................................................................................................................................ 62.2.1 Tcnica Modular ......................................................................................................................................................... 72.2.2 Portugs Estruturada ................................................................................................................................................... 73 Tcnicas Bsicas de Programao ................................................................................................. 83.1 Tipos de Informao ...................................................................................................................................................... 83.2 Tipos de Dados ............................................................................................................................................................... 83.3 O Uso de Variveis ......................................................................................................................................................... 83.4 O Uso de Constantes ...................................................................................................................................................... 93.5 Os Operadores Aritmticos ............................................................................................................................................ 93.6 As Expresses Aritmticas ou Frmulas Matemticas ................................................................................................. 93.7 Instrues Bsicas ...................................................................................................................... 103.7.1 Entrada, Processamento e Sada ............................................................................................................................... 103.8 Exerccios de Aula ...................................................................................................................................................... 133.9 Exerccios de Fixao .................................................................................................................................................. 154 Estruturas de Controle A Tomada de Decises ....................................................................... 164.1 Desvio Condicional Simples ........................................................................................................................................ 174.1.1 Exerccio de Aula ...................................................................................................................................................... 184.2 Operadores Relacionais .............................................................................................................................................. 184.3 Desvio Condicional Composto ................................................................................................................................... 184.3.1 Exerccio de Aula ...................................................................................................................................................... 194.4 Exerccios de Fixao .................................................................................................................................................. 204.5 Desvio Condicional Encadeado ................................................................................................................................... 214.5.1 Exerccio de Aula ...................................................................................................................................................... 224.6 Exerccios de Fixao .................................................................................................................................................. 234.7 Operadores Lgicos ..................................................................................................................................................... 234.7.1 Operador Lgico: .e. ................................................................................................................................................. 244.7.1.1 Exerccio de Aula ................................................................................................................................................... 244.7.2 Operador Lgico: .ou. ............................................................................................................................................... 254.7.2.1 Exerccio de Aula ................................................................................................................................................... 264.7.3 Operador Lgico: .no. ............................................................................................................................................. 274.7.3.1 Exerccio de Aula ................................................................................................................................................... 274.8 Exerccios de Fixao .................................................................................................................................................. 29 5 Estruturas de Controle Laos de Repetio ........................................................................... 325.1 Repetio do tipo: Teste Lgico no incio do looping ................................................................................................. 335.1.1 Exerccio de Aula ...................................................................................................................................................... 345.1.1.1 Exerccios de Fixao ............................................................................................................................................ 355.1.2 Exerccios de Fixao ............................................................................................................................................... 365.2 Repetio do tipo: Teste Lgico no fim do looping ..................................................................................................... 375.2.1 Exerccio de Aula ...................................................................................................................................................... 375.2.1.1 Exerccios de Fixao ............................................................................................................................................ 385.2.2 Exerccio de Aula ..................................................................................................................................................... 385.2.2.1 Exerccios de Fixao ............................................................................................................................................ 385.3 Repetio do tipo: Varivel de Controle ...................................................................................................................... 395.3.1 Exerccio de Aula ...................................................................................................................................................... 395.3.2 Exerccios de Fixao ............................................................................................................................................... 405.4 Exerccios de Fixao .................................................................................................................................................. 416 Estruturas de Dados Homogneas I ............................................................................................ 426.1 Matrizes de uma dimenso ou vetores ......................................................................................................................... 43

  • 3Lgica de Programao6.2 Operaes bsicas com Matrizes de uma dimenso ................................................................................................... 446.2.1 Atribuio de uma Matriz ........................................................................................................................................ 456.2.2 Leitura de dados de uma Matriz ................................................................................................................................ 456.2.3 Escrita dos dados de uma Matriz ........................................................................................................................... 456.3 Exerccio de Aula ......................................................................................................................................................... 466.4 Exerccios de Fixao .................................................................................................................................................. 487 Estruturas de Dados Homogneas II........................................................................................... 497.1 Matrizes com mais de uma dimenso .......................................................................................................................... 49 7.2 Operaes bsicas com matrizes de duas dimenses .................................................................................................. 507.2.1 Atribuio de uma Matriz ...................................................................................................................................... 517.2.2 Leitura de dados de uma Matriz ............................................................................................................................. 517.3 Exerccio de Aula ......................................................................................................................................................... 527.4 Exerccios de Fixao ................................................................................................................. 538 Procedimentos e Funes ............................................................................................................. 54

  • 4Escola Alcides Maya - Primeiro Mdulo1 iNTrodUo

    1.1 Definies bsicasMuitas pessoas gostam de falar ou julgar que possuem e sabem usar o raciocnio lgico, porm, quando

    necessitam do mesmo, perdem esta linha de raciocnio, pois este depende de inmeros fatores para complet-lo, tais como: calma, conhecimento, vivncia, versatilidade, experincia, criatividade, ponderao, responsabilidade, entre outros.

    Para usar a lgica, necessrio ter domnio sobre o pensamento, bem como saber pensar, ou seja, possuir a Arte de Pensar.

    Lgica a cincia que estuda as leis e critrios de validade que regem o pensamento e a demonstrao, ou seja, cincia dos princpios formais do raciocnio.

    1.2 Necessidade do uso da lgicaUsar a lgica um fator a ser considerado por todos, principalmente pelos profissionais da rea de tecnologia

    de informao, ou seja, pelos profissionais de informtica.Estes profissionais, no seu dia-a-dia dentro das organizaes, tm a incumbncia de solucionar problemas e

    atingir os objetivos apresentados por seus usurios com eficincia e eficcia, utilizando recursos computacionais e/ou automatizados.

    Neste treinamento vamos mostrar como desenvolver e aperfeioar melhor esta tcnica, lembrando que para isto voc dever ser persistente e pratic-la constantemente, chegando exausto sempre que julgar necessrio.

    1.3 Uso da lgica no desenvolvimento de programas comum aos bons programadores, na preparao de um novo programa, iniciar com um diagrama de

    blocos para demonstrar sua linha de raciocnio lgico. Este diagrama tambm chamado de fluxograma, e estabelece a seqncia de operaes a se efetuar em um programa.

    Esta tcnica permite uma posterior codificao em qualquer linguagem de programao.A tcnica mais importante no projeto de lgica de programas chamada Programao Estruturada, a qual

    consiste em uma Metodologia de Projeto, objetivando:

    Agilizar a codificao do programa; Facilitar a depurao do programa; Permitir a verificao de possveis falhas; Facilitar as alteraes e atualizaes dos programas.

    E deve ser composta por quatro passos fundamentais:

    Escrever as instrues em seqncias lgicas; Escrever instrues em grupos pequenos; Distribuir mdulos de programa entre diferentes programadores para que trabalhem sob a superviso de

    um programador snior; Revisar o trabalho executado, em reunies regulares.

  • 5Lgica de Programao1.4 Diferenciao de nomenclaturas

    Vamos identificar as diferenas entre as seguintes nomenclaturas:Fluxograma: uma ferramenta usada e desenvolvida pelo profissional que est envolvido diretamente

    com programao, tendo como objetivo descrever o mtodo e a seqncia do processo dos planos num computador.

    Portugus Estruturado: uma ferramenta de representao textual de um determinado algoritmo computacional. Este mtodo utilizado com a finalidade de apresentar uma codificao simples que seja de fcil traduo para outras linguagens de programao de computador.

    Algoritmo: um processo de clculo matemtico ou de resoluo de um grupo de problemas semelhantes. Pode-se dizer, tambm, que so regras formais para obteno de um resultado ou da soluo de um problema, englobando frmulas de expresses aritmticas.

    1.5 Formas de representao grfica uma maneira simples e concisa de representar dados sobre uma superfcie plana, por meio de diferentes

    formas, de modo a facilitar a visualizao completa e imediata de dados ou fenmenos tabulados.

    1.6 Simbologias bsicasEstes so alguns dos smbolos mais utilizados ao longo dos anos pelos profissionais de Processamento de

    Dados:

    Terminal smbolo utilizado como ponto para indicar o incio e/ou fim do fluxo de um programaSeta de fluxo de dados permite indicar o sentido do fluxo de dados.

    Processamento Smbolo ou bloco que se utiliza pra indicar clculos a efetuar, atribuies de valores ou qualquer manipulao de dados que tenha um bloco especfico para sua descrio.

    Entrada e sada de dados smbolo em funo de um dispositivo qualquer de entrada ou sada de dados, como fornecedor de informaes para processamento, gravao e outros.

    Deciso indica a deciso que deve ser tomada indicando a possibilidade de desvio para outros pontos do fluxo, dependendo do resultado de comparao e de acordo com situaes variveis.

  • 6Escola Alcides Maya - Primeiro Mdulo

    Conector utilizado quando preciso particionar o fluxograma. Quando ocorrer mais de uma partio, colocada uma letra ou nmero dentro do smbolo de conexo para identificar os pares de ligao.

    Conector especfico para indicar conexo do fluxo em outra pgina.

    Mdulo de sub-rotina

    2 iNTrodUo Lgica

    2.1 Princpios de resoluo de problemasNs programadores que somos solucionadores de problemas, devemos entender que problema uma

    questo que foge a uma determinada regra, ou melhor, o desvio de um percurso, o qual impede de atingir com sucesso um determinado objetivo com eficincia e eficcia.

    Portanto para resolver um problema de lgica usamos um procedimento de desenvolvimento para o fluxo de informaes.

    Vamos usar como exemplo uma Escola Tcnica de Informtica, em que o clculo da mdia realizado por quatro notas bimestrais que determinam a aprovao ou reprovao dos seus alunos. Considere que o valor da mdia deva ser maior ou igual a 7 para que ocorra a aprovao.

    A primeira etapa apresenta um detalhamento no que se refere entrada e sada, ou seja, deve-se entrar com as quatro notas bimestrais para se obter, como resultado, o clculo da mdia e assim definir a aprovao ou reprovao do aluno.

    A segunda etapa consiste em trabalhar o termo: determinar a aprovao. Para ser possvel determinar algo, necessrio estabelecer uma condio. Assim sendo, uma condio envolve uma deciso a ser tomada segundo um determinado resultado. No caso, a mdia. Desta forma, a condio de aprovao: mdia maior ou igual a 7 deve ser considerada no algoritmo.

    2.2 Particularidades entre lgicasComo um Arquiteto desenha e escreve especificaes para descrever como uma construo de um edifcio

    dever ser efetuada e o engenheiro de projeto desenvolve um esquema detalhado das atividades de construo, um especialista em informao desenvolve um plano, que ser comunicado a outros, de como o problema de processamento de dados deve ser resolvido.

    Para auxiliarmos na sua compreenso, mostraremos como estes conceitos de estruturas, bem como as particularidades de conexes e dos procedimentos entre o mtodo lgico, encaixam-se ou no para resoluo dos problemas de processamento de dados. A seguir, so apresentados alguns tipos de procedimentos individualmente.

  • 7Lgica de Programao2.2.1 Tcnica Modular

    Esta tcnica deve ser elaborada como uma estrutura de partes independentes, denominada de mdulos, cujo procedimento controlado por um conjunto de regras, onde suas metas so as seguintes:

    Decompor o problema em partes independentes; Dividir um problema complexo em problemas menores e mais simples; Verificar a correo de um mdulo de blocos, independentemente de sua utilizao como uma unidade em

    processo maior.

    A modularizao deve ser desenvolvida, se possvel, em diferentes nveis. Ela pode ser utilizada para separar um problema em sistemas, um sistema em programas e um programa em mdulos.

    O modelo padro de um mdulo consiste em trs partes: Entrada, Processamento e Sada.

    Dados de Entrada

    Processo de transformao

    Dados de Sada

    2.2.2 Portugs Estruturada

    uma tcnica narrativa denominada pseudocdigo, tambm conhecida como portugus estruturado ou chamado por alguns de portugol.

    Esta tcnica de baseada em uma PDL Program Design Language (Linguagem de Projeto de Programao) e utilizada como referncia genrica para uma linguagem de projeto de programao, tendo como

    finalidade mostrar uma notao para elaborao de algoritmos, os quais sero utilizados na definio, criao e desenvolvimento de uma linguagem computacional (Clipper, C, Pascal, Delphi) e sua documentao. A seguir, apresentado um exemplo deste tipo de algoritmo:

    incio caractere: resultado; real: n1, n2, n3, n4; real: soma, media;

    leia n1, n2, n3, n4;

    soma n1 + n2 + n3 + n4; media soma / 4;

    se ( media >= 7 ) ento resultado Aprovado; seno resultado Reprovado; fim_se

    escreva Nota 1: , n1; escreva Nota 2: , n2; escreva Nota 3: , n3; escreva Nota 4: , n4; escreva Soma: , soma; escreva Mdia: , media; escreva Resultado: , resultado;fim

  • 8Escola Alcides Maya - Primeiro Mdulo

    A diferena entre uma linguagem de programao de alto nvel utilizada em computao e uma PDL que esta no pode ser compilada em um computador.

    3 TcNicas Bsicas de ProgramaoA partir deste momento vamos ter um contato direto com a parte prtica da Lgica de Programao.Na parte anterior tivemos uma introduo terica bsica de alguns pontos e desta parte em diante teremos um

    contato mais com a aplicao prtica dos algoritmos, testes de mesa e por fim a codificao em pseudocdigo: Portugus estruturado. Mas ainda so necessrios alguns conceitos.

    3.1 Tipos de InformaoAntes de iniciar o estudo de programao, necessrio considerar que um computador nada mais do que

    uma ferramenta utilizada para solucionar problemas que envolvam a manipulao de informaes, sendo que essas informaes classificam-se em dois tipos bsicos: dados e instrues.

    3.2 Tipos de DadosOs dados so representados pelas informaes a serem tratadas (processadas) por um computador. Essas

    informaes esto caracterizadas por trs tipos de dados, a saber: dados numricos (inteiros e reais), dados caracteres e dados lgicos.

    Tipo de Dado Descrio ExemplosInteiro So caracterizados como tipos inteiros os dados numricos

    positivos ou negativos, excluindo-se deste qualquer nmero fracionrio.

    350-56

    Real So caracterizados como tipos reais os dados numricos positivos, negativos e nmeros fracionrios.

    351.2-45.897

    Caracteres So caracterizados como tipos caracteres s seqncias contendo letras, nmeros e smbolos especiais. Uma seqncia de caracteres deve ser indicada entre aspas (). Este tipo de dado tambm conhecido como: alfanumrico, string, literal ou cadeia.

    PROGAMAO,Rua Alfa, 52 apto 1Fone: 574-998890387-45677

    Lgicos So caracterizados como tipos lgicos os dados com valores verdadeiro e falso, sendo que este tipo de dado poder representar apenas um dos dois valores. Ele tambm chamado de tipo booleano. Para facilitar a citao de um dado do tipo lgico, fica declarado que estes devero ser apresentados e delimitados pelo caractere ponto (.).

    .Falso.

    .F.

    .Verdadeiro.

    .V.

    3.3 O Uso de VariveisTem-se como definio de varivel tudo aquilo que sujeito a variaes, que incerto, instvel ou inconstante.

    E quando se fala de computadores, temos que ter em mente que o volume de informaes a serem tratadas grande e diversificado. Desta forma, os dados a serem processados sero bastante variveis.

    Todo dado a ser armazenado na memria de um computador deve ser previamente identificado, ou seja, primeiro necessrio saber qual o seu tipo para depois fazer o seu armazenamento adequado. Estando armazenado o dado desejado, ele poder ser utilizado e manipulado a qualquer momento.

  • 9Lgica de ProgramaoPara utilizar o conceito de varivel, imagine que a memria de um computador um grande arquivo com

    vrias gavetas, sendo que cada gaveta pode armazenar apenas um nico valor (Seja ele: numrico, lgico ou caractere). Se for um grande arquivo com vrias gavetas voc h de concordar que necessrio identificar com um nome a gaveta que se pretende utilizar. Desta forma o valor armazenado pode ser utilizado a qualquer momento.

    O nome de uma varivel utilizado para sua identificao e posterior uso em um programa. Sendo assim, necessrio estabelecer algumas regras de utilizao de variveis:

    Nomes de uma varivel podero ser atribudos com um ou mais caracteres; O primeiro caractere do nome de uma varivel dever ser uma letra; O nome de uma varivel no poder possuir espaos em branco; No pode ser uma palavra reservada a uma instruo de programa; No podero ser utilizados outros caracteres a no ser letras e nmeros.

    So nomes vlidos de variveis: nomeusuario, nome_cliente, fone1, delta25, z4, entre outros.Devemos ainda considerar que dentro de um programa uma varivel pode exercer dois papis. Um de ao,

    quando modificada ao longo de um programa para apresentar um determinado resultado, e o segundo de controle, a qual poder ser vigiada e controlada durante a execuo de um programa.

    3.4 O Uso de ConstantesTem-se como definio de constante tudo aquilo que fixo ou estvel. Existiro vrios momentos em que este conceito dever estar em uso. Por exemplo, o valor 1.23 da frmula

    seguinte uma constante: resultado = entrada * 1.23

    3.5 Os Operadores AritmticosTanto variveis como constantes podero ser utilizadas na elaborao de clculos matemticos, ou seja, na

    elaborao de expresses aritmticas, desde que sejam estabelecidas como do tipo real ou inteira, e para que isto ocorra necessrio utilizao de operadores aritmticos.

    Veja a seguir a tabela dos operadores aritmticos

    Operador Operao Tipo de resultadoh Exponenciao Inteiro ou Real/ Diviso Real

    Div Diviso Inteiro* Multiplicao Inteiro ou Real+ Adio Inteiro ou Real- Subtrao Inteiro ou Real

    3.6 As Expresses Aritmticas ou Frmulas MatemticasSer muito comum trabalharmos com expresses aritmticas ou frmulas matemticas, uma vez que a maior

    parte do trabalho computacional est relacionada com a utilizao de clculos. Estas expresses so definidas pelo relacionamento existentes entre variveis e constantes numricas por meio da utilizao dos operadores aritmticos.

    Considere a frmula: area = PI . raio para o clculo da rea de uma circunferncia, em que esto presentes as variveis rea e raio, a constante PI (pi = 3.14159) e os operadores aritmticos de multiplicao e tambm a operao de potncia, elevando o valor da varivel raio ao quadrado.

    As expresses aritmticas em computao so escritas de uma forma um pouco diferente da forma conhecida em matemtica, por exemplo, a expresso: x = {43 . [55 : (30 + 2) ] } ser escrita na forma computacional como: x (43 * (55 / (30 +2))).

  • 10

    Escola Alcides Maya - Primeiro MduloPerceba que as chaves e colchetes so abolidos, utilizando-se em seu lugar apenas os parnteses. tambm

    substitudo o sinal de (=) igual pelo sinal de () implicando ou atribuindo.O sinal de atribuio () utilizado para indicar que o valor de uma expresso aritmtica ou frmula est

    sendo armazenado em uma varivel. No caso da frmula para o clculo da rea de uma circunferncia, ela poderia ser escrita da seguinte maneira: area 3.14159 * raio h2 ou area 3.14159 * raio * raio

    3.7 iNsTrUes BsicasAs instrues so representadas pelo conjunto de palavras-chave de uma determinada linguagem de

    programao, que tem por finalidade comandar o computador.Para a lgica de programao podemos utilizar o Portugus Estruturado.Agora teremos contato com algumas instrues como: incio, fim, var, programa, enquanto, se, ento,

    seno, escreva, leia, etc.

    3.7.1 Entrada, Processamento e SadaPara criar um programa que seja executvel dentro de um computador, deve-se ter em mente trs pontos

    de trabalho: a entrada de dados, o seu processamento e a sada deles. Sendo assim todo programa estar trabalhando com estes trs conceitos.

    O processo de execuo de um programa ocorre aps a entrada de dados com a instruo leia e a sua sada com a instruo escreva. O processamento ser uma conseqncia da manipulao das variveis de ao.

    Uma entrada e uma sada podero ocorrer dentro de um computador de diversas formas. Por exemplo, uma entrada poder ser feita via teclado, modem, leitores ticos, disco, entre outros. Uma sada poder ser feita em vdeo, impressora, disco, entre outras formas. Devido a esta grande variedade, nossos programas escritos em portugus estruturado faro meno s instrues leia e escreva.

    Considere o seguinte exemplo de um problema: Dever ser criado um programa que efetue a leitura de dois valores numricos. Faa a operao de soma entre os dois valores e apresente o resultado obtido.

    Note: Sempre estaremos diante de um problema, o qual dever ser resolvido primeiro por ns, para que depois seja resolvido por um computador. O que queremos dizer que primeiro voc deve entender bem o problema, para depois buscar a sua soluo dentro de um computador, ou seja, voc dever ensinar a mquina a resolver o seu problema, por meio de um programa. Desta forma, o segredo de uma boa lgica est na compreenso adequada do problema a ser solucionado.

    Com relao ao problema proposto, dever ser primeiro muito bem interpretado. Isto ocorre com o auxlio de uma ferramenta denominado algoritmo, que dever estabelecer todos os passos necessrios a serem cumpridos na busca de uma soluo para um problema. Lembre-se de que um algoritmo na verdade uma receita de como fazer.

    Para tanto, observe a estrutura do algoritmo com relao ao problema da leitura dos dois valores (que no conhecemos e tambm no precisamos conhecer, pois neste caso utilizaremos duas variveis para trabalhar estas incgnitas a e B) e a sua respectiva soma (conseqncia dos valores informados, a qual tambm uma incgnita e depende dos valores fornecidos; utilizaremos para esta a varivel X).

    Algoritmo1 Ler dois valores, no caso as variveis a e B;2 Efetuar a soma das variveis a e B, atribuindo o seu resultado para a varivel X;3 Apresentar o valor da varivel X aps a operao de soma dos dois valores fornecidos

    Perceba que o algoritmo a interpretao passo a passo de um determinado problema. como ter um problema matemtico: Joo foi feira com R$ 20,00, comprou uma dzia de laranjas por R$ 5,00. com quanto Joo voltou para casa?. Na verdade, o que interessa no o fato ocorrido com Joo e sim efetuar os clculos necessrios para se saber quanto sobrou na mo de Joo. Em processamento de dados parecido, pois precisamos somente efetuar o levantamento das variveis e saber o que fazer com elas.

  • 11

    Lgica de ProgramaoFLUXogramaCompletada a fase de interpretao do problema e da definio das variveis a serem utilizadas, passa-se

    para a fase de diagramao do algoritmo, que o fluxograma.

    Inicio

    Ler ALer B

    X

  • 12

    Escola Alcides Maya - Primeiro MduloDesta forma, so utilizadas trs variveis: A, B e X, estabelecendo-se assim o seu respectivo tipo.Tendo relacionado todas as variveis que sero utilizadas no programa, passa-se para a fase de montagem

    do que est estabelecido no fluxograma, ou seja, de tudo que est relacionado entre os smbolos Terminal (Indicao de incio e fim do fluxograma)

    Observe que o bloco de instrues de programa, indicado entre as instrues incio e fim apresentado deslocado um pouco para a direita. Este estilo de escrita deve ser obedecido, para facilitar a leitura de um bloco de programa, recebendo o nome de endentao.

    Aps a leitura dos valores para as variveis A e B, eles sero somados e atribudos na varivel X, a qual ser apresentada com o valor da soma processada.

    codiFicao em PascaLPara exemplificar vamos codificar o algoritmo que soma os nmeros na linguagem Pascal:

    program soma_num;var X : integer; A : integer; B : integer;begin readln (A); readln (B); X := A + B; writeln (X);end.

    Depois de codificar o programa (escrever o programa em uma linguagem) voc deve compilar o programa fonte.

    O que significa compilar? Compilar : Transformar a linguagem fonte do programa em um programa executvel, ou seja, transformar o programa na linguagem de mquina.

    Como compilamos? Compilamos utilizando um programa especial que faz este trabalhoObservao: Se houver problemas de sintaxe, se voc escreveu alguma instruo errada, o compilador no

    ir gerar o programa executvel, ele apenas ir emitir uma mensagem de erro de sintaxe.Se no houver erro na compilao, teremos o programa executvel, tambm chamado de aplicativo, que ser

    utilizado para testar o programa, verificando se o mesmo faz o que o fluxograma determinou.Resumindo: Para fazer o computador resolver um problema qualquer temos que: 1 Fazer o algoritmo do problema 2 Codificar o programa em uma linguagem de programao 3 Compilar este programa para verificar erros de sintaxe e criar o programa executvel 4 Testar o programa executvel

  • 13

    Lgica de ProgramaocodiFicao em LiNgUagem cAgora vamos codificar o algoritmo que soma os nmeros na linguagem C.main( ){int X;int A;int B;

    scanf(%d, &A);scanf(%d, &B);

    X = A + B;

    printf(%d, X);}

    Depois de codificar este programa, voc dever tambm compilar, para verificar possveis erros de sintaxe, e testar o programa.

    3.8 Exerccios de AulaAbaixo so apresentados exemplos que aplicam os conceitos at aqui estudados. Sendo assim, olhe

    atentamente cada exemplo para perceber os seus detalhes. Trabalharemos apenas com o Portugus Estruturado, pois na disciplina de Fundamentos de Programao

    voc ir codificar o programa na linguagem C.

    Primeiro eXemPLoDesenvolver a lgica para um programa que efetue o clculo da rea de uma circunferncia, apresentando

    a rea calculada.aLgoriTmoPara efetuar o clculo da rea de uma circunferncia necessrio conhecer a frmula que executa este

    clculo sendo esta: A = pR, em que A a varivel que conter o resultado do clculo da rea, p o valor de pi (3.14159), sendo uma constante na frmula e R o valor do raio. Sendo assim, basta estabelecer:

    1 Ler um valor para o raio, no caso a varivel R;2 Estabelecer que PI possua o valor 3,14159;3 Efetuar o clculo da rea, elevando ao quadrado o valor de R e multiplicando por PI;4 Apresentar o valor da varivel A.

    A frmula para o clculo da rea passar a ser escrita como: A 3.14159 * Rh2 ou se voc preferir poder escrever da seguinte forma: A 3.14159 * R * R.

  • 14

    Escola Alcides Maya - Primeiro MduloPorTUgUs esTrUTUradoincio real: A, R;

    escreva Digite o valor do raio: ; leia R;

    A 3.14159 * R * R;

    escreva A rea : , A;fim

    segUNdo eXemPLoConstruir um programa que efetue o clculo do salrio lquido de um professor. Para fazer este programa, voc

    dever possuir alguns dados, tais como: valor da hora aula, nmero de horas trabalhadas no ms e percentual de desconto do INSS. Em primeiro lugar, deve-se estabelecer qual ser o seu salrio bruto para efetuar o desconto e ter o valor do salrio lquido.

    aLgoriTmo1 Estabelecer a leitura da varivel HT (Horas trabalhadas no ms);2 Estabelecer a leitura da varivel VH (valor hora aula);3 Estabelecer a leitura da varivel PD (Percentual de desconto de INSS);4 Calcular o salrio bruto (SB), sendo este a multiplicao das variveis HT e VH;5 Calcular o total de desconto (TD) com base no valor de PD dividido por 100;6 Calcular o salrio lquido (SL), deduzindo o desconto do salrio bruto;7 Apresentar os valores dos salrios bruto e lquido: SB, TD e SL.

    PorTUgUs esTrUTUradoincio inteiro: HT; real : VH, PD, TD, SB, SL ;

    escreva Digite a quantidade de horas trabalhadas: ; leia HT; escreva Digite o valor da hora: ; leia VH; escreva Digite o percentual de desconto do INSS: ; leia PD;

    SB HT * VH; TD ( PD / 100 ) * SB; SL SB TD;

    escreva Valor do salrio bruto....................: , SB; escreva Total de desconto de INSS...........: , TD; escreva Valor do salrio lquido..................: , SL;fim

  • 15

    Lgica de Programao3.9 Exerccios de Fixao

    1 Indique com um X quais dos dados abaixo so do tipo Inteiro.( ) 1000( ) 0( ) -900( ) .Verdadeiro.( ) -456( ) 34( ) Casa 8( ) 0( ) .Falso.( ) 1.56

    2 Indique com um X quais dos dados abaixo so do tipo Real.( ) -678( ) 0.87( ) -9.12( ) .Verdadeiro.( ) -456( ) 99.8( ) Cinco( ) 45.8976( ) .Falso.( ) 1.56

    3 Indique com um X quais dos dados abaixo so do tipo Literal.( ) 678( ) 0.87( ) -9.12( ) Verdadeiro( ) -456( ) 99.8( ) Cinco( ) 45.8976( ) .Falso.( ) 1.56

    4 Indique com um X quais dos dados abaixo so do tipo Lgico.( ) -678( ) 0.87( ) -9.12( ) .Verdadeiro.( ) -456( ) .V.( ) Cinco( ) .Falso.( ) .F.( ) 1.56

  • 16

    Escola Alcides Maya - Primeiro Mdulo

    5 Desenvolva os programas a seguir em portugus estruturado:a) Ler dois valores numricos. Calcular e apresentar o produto entre eles.b) Ler trs valores numricos. Calcular e apresentar a mdia entre eles.c) Ler a idade de uma pessoa. Calcular e apresentar a existncia desta pessoa em nmero de dias, em

    nmero de horas, em nmero de minutos e em nmero de segundos.d) Ler uma temperatura em graus Fahrenheit e apresenta-la convertida em graus Celsius. A frmula de

    converso C ( F 32 ) * ( 5 / 9 ), sendo F a temperatura em Fahrenheit e C a temperatura em Celsius.e) Calcular e apresentar o valor do volume de uma lata de leo, utilizando a frmula: VOLUME

    3.14159 * RAIO h 2 * ALTURA.f) Efetuar o clculo da quantidade de litros de combustvel gasta em uma viagem, utilizando um automvel

    que faz 12 KM por litro. Para obter o clculo, o usurio deve fornecer o tempo gasto (TEMPO) e a velocidade mdia (VELOCIDADE) durante a viagem. Desta forma, ser possvel obter a distncia percorrida com a frmula DISTNCIA TEMPO * VELOCIDADE. Possuindo o valor da distncia, basta calcular a quantidade de litros de combustvel utilizada na viagem com a frmula LITROS_USADOS DISTNCIA / 12. Ao final o programa deve apresentar os valores da velocidade mdia (VELOCIDADE), tempo gasto na viagem (TEMPO), a distncia percorrida (DISTNCIA) e a quantidade de litros (LITROS_USADOS) utilizada na viagem.

    g) Efetuar o clculo e a apresentao do valor de uma prestao em atraso, utilizando a frmula PRESTAO VALOR + (VALOR * (TAXA / 100) * TEMPO).

    h) Ler dois valores (inteiros, reais ou caracteres) para as variveis A e B, e efetuar a troca dos valores de forma que a varivel A passe a possuir o valor da varivel B e a varivel B passe a possuir o valor da varivel A . Apresentar os valores trocados.

    i) Elaborar um programa que calcule e apresente o volume de uma caixa retangular por meio da frmula VOLUME COMPRIMENTO * LARGURA * ALTURA.

    j) Efetuar a leitura de um nmero inteiro e apresentar o resultado do quadrado desse nmerok) Elaborar um programa que leia as 4 notas escolares de um aluno. Calcular e apresentar a mdia do

    aluno.l) Elaborar um programa que leia a idade de duas pessoas. Calcular e apresentar a diferena das idades.m) Elaborar um programa que leia de um vendedor o salrio fixo, o valor total de vendas por ele efetuadas na

    loja e o percentual de comisso que ganha pelas vendas. Calcular e apresentar o valor da comisso que ele vai receber e o salrio total.

    n) Elaborar um programa que calcula a rea de um tringulo. O programa deve ler o valor da base e o valor da altura do tringulo. A frmula da rea : area = (base * altura) / 2. Aps o calculo apresentar a rea.

    4 esTrUTUras de coNTroLe a Tomada de decisesFoi visto anteriormente como trabalhar com entrada, processamento e sada utilizando variveis, constantes

    e operadores aritmticos. Apesar de j se conseguir solucionar problemas e transform-los em programas, os recursos at aqui estudados so limitados, pois haver momentos em que um determinado valor dentro de um programa necessitar ser tratado para se efetuar um processamento mais adequado.

    Imagine a seguinte situao: Um programa que apresente a mdia de um aluno e a informao se ele est aprovado ou reprovado. Observe que ser necessrio verificar a mdia do aluno para tomar uma deciso no sentido de apresentar a sua real situao: aprovado ou reprovado.

  • 17

    Lgica de Programao4.1 Desvio Condicional Simples

    Para solucionar o problema proposto, necessrio trabalhar uma nova instruo: se...ento...fim_se. FluxogramaObserve no fluxograma a existncia das letras S e N, alm das linhas com seta indicando a direo do

    processamento, colocada juntamente com o smbolo de Deciso. O S representa o sim e est posicionado para indicar que um determinado bloco de operaes ser executado

    quando a condio atribuda for verdadeira.O N est para no e ser executado quando a condio for falsa.O smbolo do losango, ou melhor, dizendo, Deciso dever ser utilizado em situaes em que haja necessidade

    de usar uma deciso dentro do programa. Uma deciso ser tomada sempre com base em uma pergunta, como Resposta = sim, e esta pergunta que

    dever estar indicada dentro do smbolo de losango.

    CondioInstrues executadas quando a condio for

    verdadeira

    Instrues executadas quando a condio for

    falsa ou aps ser verdadeira

    S

    N

    PorTUgUs esTrUTUradose (condio) ento < instrues para condio verdadeira >fim_se

    Sendo a condio verdadeira, sero executadas todas as instrues que estejam entre a instruo se...ento e a instruo fim-se.

    Sendo a condio falsa, sero executadas as instrues que estejam aps o comando fim_se.

  • 18

    Escola Alcides Maya - Primeiro Mdulo4.1.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que leia dois valores numricos. Efetuar a adio e apresentar o seu

    resultado caso o valor somado seja maior que 10.aLgoriTmo1 Ler um valor para a varivel A e outro valor para a varivel B;2 Efetuar a soma dos valores incgnitos A e B, atribuindo o valor da soma na varivel X; 3 Apresentar o valor da soma contido na varivel X, caso o valor de X seja maior que 10.Portugus Estruturadoincio inteiro: A, B, X;

    escreva Digite um nmero: ; leia A; escreva Digite outro nmero: ; leia B;

    X A + B;

    se ( X > 10 ) ento escreva X; fim sefim

    4.2 Operadores RelacionaisAo utilizarmos os desvios condicionais necessitamos dos operadores relacionais.

    Operador Ao Exemplo Resultado> maior que 5 > 2 V

    >= maior ou igual a 5 >= 7 F< menor que 5 < 7 V

    7 V

    4.3 Desvio Condicional CompostoVamos aprender agora a fazer uso da instruo se...ento...seno...fim_se. Fluxograma.

  • 19

    Lgica de Programao

    CondioInstrues executadas

    quando condio verdadeira

    Instrues executadas quando condio for

    falsa

    S

    N

    Figura 4.3 Estrutura do smbolo para instruo se...ento...seno...fim-se

    PorTUgUs esTrUTUradose (condio) ento < instrues para condio verdadeira >seno < instrues para condio falsa >fim se

    Sendo a condio verdadeira, sero executadas todas as instrues que estejam posicionadas entre o se...ento e a instruo seno.

    Sendo a condio falsa, sero executadas as instrues que estejam entre o seno e a instruo fim se.

    4.3.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que leia dois valores numricos e efetue a adio destes valores.

    Caso o valor somado seja maior ou igual a 10, dever ser apresentado somando a ele mais 5; caso o valor somado no seja maior ou igual a 10, este dever ser apresentado subtraindo 7.

    Algoritmo1 Ler um valor para a varivel A e outro valor para a varivel B;2 Efetuar a soma dos valores incgnitos A e B, atribuindo o valor da soma na varivel X; 3 Verificar se X maior ou igual a 10; caso seja verdadeiro, calcule R x + 5. Seno calcule R X 7

  • 20

    Escola Alcides Maya - Primeiro MduloPorTUgUs esTrUTUradoincio inteiro: A, B, X, R;

    escreva Digite um nmero: ; leia A; escreva Digite outro nmero: ; leia B;

    X A + B;

    se ( X >= 10 ) ento R X + 5; seno R X 7; fim se

    escreva O resultado : , R; fimObserve que aps a definio dos tipos de variveis, solicitada a leitura dos valores para as variveis A e

    B, depois esses valores so atribudos na varivel X, a qual possui o resultado da adio dos dois valores. Neste ponto, questionada no programa uma condio que permitir escrever o resultado da soma adicionado de 5, caso esta seja maior ou igual a 10, e no sendo, o programa apresentar o resultado subtraindo 7.

    4.4 Exerccios de FixaoVamos fazer alguns exerccios:a) Faa um Programa que leia dois nmeros quaisquer, e escreva o maior deles.b) Faa um Programa que leia um nmero inteiro. Informar se o nmero PAR ou MPAR.c) Faa um Programa que leia dois nmeros quaisquer, e escreva o resultado do clculo do maior dividido

    pelo menor.d) Faa um Programa que leia a receita e a despesa de uma empresa e apresente se ela est com LUCRO

    ou com PREJUZO.e) Faa um Programa que leia 4 notas escolares de um aluno. Calcule e apresente a mdia. Sabendo-se que

    a mdia de aprovao da escola 7, apresente a informao se o aluno foi APROVADO ou REPROVADO.f) Faa um Programa que leia dois nmeros e apresente o sinal do produto entre eles. Considere que

    somente nmeros diferentes de zero sero digitados.g) Faa um Programa que leia um nmero e escreva maior do que 100, se o nmero digitado for maior que

    100 e escreva menor do que 100, se o nmero for menor do que 100.h) Faa um Programa que leia um cdigo:1 sinal vermelho, 2 sinal verde. Baseado no cdigo digitado

    diga para o pedestre que est esperando no sinal:SIGA ou ESPEREi) Faa um Programa que leia a quantidade de vitrias e a quantidade de derrotas de um time de futebol.

    Escrever BOM se o nmero de vitrias for maior que o nmero de derrotas, caso contrrio escrever RUIM.

  • 21

    Lgica de Programao4.5 Desvio Condicional Encadeado

    Existem casos em que necessrio estabelecer a verificao de condies sucessivas, em que uma determinada ao poder ser executada se um conjunto anterior de instrues ou condies for satisfeito. Sendo a ao executada, ela poder ainda estabelecer novas condies. Isto significa utilizar uma condio dentro de outra condio. Este tipo de estrutura poder possuir diversos nveis de condio, sendo chamadas de encadeamentos.

    FLUXograma

    Condio1Instrues executadas

    quando condio 1 verdadeira

    S

    N

    Condio2S

    N

    Instrues executadas quando condio 1

    falsa, mas a condio 2 verdadeira

    Instrues executadas quando condio 1 e condio 2 so falsas

  • 22

    Escola Alcides Maya - Primeiro MduloFigura 4.5 Estrutura condicional composta ou encadeada.Portugus Estruturadose (condio 1) ento < instrues para condio 1 verdadeira >seno se (condio 2) ento < instrues para condio 2 verdadeira > seno < instrues para condio 1 e condio 2 falsa > fim sefim se

    4.5.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que efetue o clculo do reajuste de salrio de um funcionrio.

    Considere que o funcionrio dever receber um reajuste de 15% caso seu salrio seja menor ou igual a 500. Se o salrio for maior que 500, mas, menor ou igual a 1000, seu reajuste ser de 10%; caso seja ainda maior que 1000, o reajuste dever ser de 5%.

    aLgoriTmoPerceba que o problema em questo estabelece trs condies para calcular o reajuste do salrio do

    funcionrio, sendo:

    Salrio 500, mas 1000, reajuste ser de 5%

    Estas condies devero ser encadeadas, pois todas as possibilidades de reajuste devero ser cercadas. Sendo assim, observe o algoritmo abaixo:

    1 Definir uma varivel para o salrio reajustado: novo_salario;2 Ler um valor para a varivel salrio;3 Verificar se o valor de salario

  • 23

    Lgica de Programao fim se fim se escreva O valor do novo salrio : ,novo_salario; fim

    4.6 Exerccios de FixaoVamos fazer alguns exerccios

    a) Faa um Programa que leia o valor do salrio hora, a quantidade de horas trabalhadas e a quantidade de filho menores de 14 anos de um funcionrio. Calcular o valor do salrio bruto. Para calcular o valor do salrio famlia levar em considerao o seguinte:

    Se o salrio bruto for at R$ 500,00 o salrio famlia ser de R$ 10,50 por cada filho; Se o salrio bruto for acima de R$ 500,00 at R$ 1.000,00 o salrio famlia ser de R$ 6,50 por cada

    filho; Se o salrio bruto for acima de R$ 1.000,00 o salrio famlia ser de R$ 1,50 por cada filho.

    No final apresentar o valor do salrio bruto e o valor do salrio famlia a ser recebido.

    b) Faa um Programa que leia o salrio bruto de uma pessoa e calcule o desconto do INSS levando em considerao o seguinte:

    Para salrios at R$ 500,00 a alquota de INSS ser de 8% Para sal.acima de R$ 500,00 at R$ 1.000,00 a alquota de INSS ser de 10% Para sal.acima de R$ 1.000,00 a alquota de INSS ser de 12%.

    No final dever ser apresentado:

    Salrio bruto Taxa de INSS Valor de INSS Salrio lquido

    c) Faa um Programa que leia o cdigo de uma mercadoria e que escreva o nome do produto conforme tabela abaixo:

    1 Sabo 2 Vassoura 3 Detergente

    4.7 Operadores LgicosPode ser que voc necessite, em algum momento, trabalhar com o relacionamento de duas ou mais condies

    ao mesmo tempo na mesma instruo se, efetuando desta forma testes mltiplos. Para estes casos necessrio trabalhar com a utilizao dos operadores lgicos.

    Os operadores lgicos mais comuns so: .e., .ou. e .no., e sero representadores em portugus estruturado sempre entre pontos.

    Em alguns casos, o uso de operadores lgicos evita a utilizao de instrues se encadeadas.

  • 24

    Escola Alcides Maya - Primeiro Mdulo4.7.1 Operador Lgico: .e.

    O operador do tipo .e. utilizado quando dois ou mais relacionamentos lgicos de uma determinada condio necessitam ser verdadeiros.

    Condio 1 Condio 2 ResultadoFalsa Falsa FalsoVerdadeira Falsa FalsoVerdadeira Verdadeira Verdadeiro

    Para facilitar a compreenso deste operador imagine que voc possua dois fios ligados a uma lmpada e a uma bateria. A lmpada somente acender se voc tiver ligado ambos os fios aos plos da bateria. Acompanhe esse exemplo no seguinte diagrama:

    Fio Vermelho Ligado Fio Preto Ligado Lmpada AcendeFalso Falso FalsoVerdadeiro Falso FalsoFalso Verdadeiro FalsoVerdadeiro Verdadeiro Verdadeiro

    PorTUgUs esTrUTUradose (condio 1) .e. (condio 2) ento < instrues executadas se condio 1 e condio 2 verdadeiras >fim_se

    O operador .e. faz com que somente seja executada uma determinada operao se todas as condies mencionadas forem simultaneamente verdadeiras.

    4.7.1.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que leia um nmero. Informar se o nmero digitado est na faixa de

    20 a 90.aLgoriTmo1 Ler um valor para a varivel num;2 Se o valor digitado estiver na faixa de 20 a 90 apresentar uma mensagem informando.PorTUgUs esTrUTUradoincio inteiro: num;

    escreva Digite um nmero: ; leia num;

    se ( num >= 20 ) .e. ( num

  • 25

    Lgica de ProgramaoO exemplo mostra, por meio da utilizao do operador .e. que somente ser apresentada a mensagem O

    nmero est na faixa de 20 a 90, caso o valor fornecido para a varivel num seja entre 20 e 90. Qualquer valor fornecido fora da faixa definida apresentar a mensagem O nmero no est na faixa de 20 a 90.

    Segundo exemploDesenvolver a lgica para um programa que leia um ngulo (entre 0 e 360) e que escreva o quadrante ao

    qual pertence. Ignorar os eixos. Algoritmo1 Ler um valor para a varivel angulo;2 Verificar se o ngulo digitado > 0 e < 90, se for verdade: ngulo est no primeiro quadrante3 Verificar se o ngulo digitado > 90 e < 180, se for verdade: ngulo est no segundo quadrante4 Verificar se o ngulo digitado > 180 e < 270, se for verdade: ngulo est no terceiro quadrante5 Verificar se o ngulo digitado > 270 e < 360, se for verdade: ngulo est no quarto quadrante Portugus Estruturadoincio inteiro: ngulo;

    escreva Digite um ngulo: ; leia angulo;

    se ( angulo > 0 ) .e. ( angulo < 90 ) ento escreva ngulo est no primeiro quadrante; seno se ( angulo > 90 ) .e. ( angulo < 180 ) ento escreva ngulo est no segundo quadrante; seno se ( angulo > 180 ) .e. ( angulo < 270 ) ento escreva ngulo est no terceiro quadrante; seno se ( angulo > 270 ) .e. ( angulo < 360 ) ento escreva ngulo est no quarto quadrante; fim se fim se fim se fim sefimO programa acima no se preocupa se o usurio digitar um valor indevido, ou seja, se no estiver na faixa

    ou estiver em um dos eixos. Este exemplo foi feito desta forma para que possamos nos concentrar apenas no operador lgico .e.

    4.7.2 Operador Lgico: .ou.

    O operador do tipo .ou. utilizado quando pelo menos um dos relacionamentos lgicos (quando houver mais de um relacionamento) de uma condio necessita ser verdadeiro. Abaixo, apresentada a tabela de deciso para este tipo de operador:

    Condio 1 Condio 2 ResultadoFalsa Falsa FalsoVerdadeira Falsa VerdadeiroFalsa Verdadeira VerdadeiroVerdadeira Verdadeira Verdadeiro

    Considere agora, como exemplo, que voc deseja escrever uma carta. Se voc tiver uma mquina de escrever

  • 26

    Escola Alcides Maya - Primeiro Mduloou (OR) um microcomputador, pode tranqilamente satisfazer seu desejo. Acompanhe o diagrama em seguida:

    Tem Mquina Tem Computador Pode EscreverFalso Falso FalsoVerdadeiro Falso VerdadeiroFalso Verdadeiro VerdadeiroVerdadeiro Verdadeiro Verdadeiro

    PorTUgUs esTrUTUradose (condio 1) .ou. (condio 2) ento < instrues executadas se condio 1 ou se condio 2 for verdadeiras >fim_se

    O operador .ou. faz com que seja executada uma determinada operao se pelo menos uma das condies mencionadas for verdadeira.

    4.7.2.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que leia o cdigo relativo ao sexo (masculino=1 ou feminino=2). Se

    for digitado um cdigo correto informar que o cdigo vlido, caso contrrio informar que o cdigo invlido.

    aLgoriTmo1 Ler um cdigo numrico para a varivel codigo;2 Se o cdigo digitado for igual a 1 ou igual a 2 apresentar uma mensagem informando que o cdigo vlido

    caso contrrio informar que o cdigo invlido.PorTUgUs esTrUTUradoincio inteiro: cdigo;

    escreva Digite um cdigo: ; leia cdigo;

    se ( codigo = 1 ) .ou. ( cdigo = 2 ) ento escreva O cdigo do sexo vlido; seno escreva O cdigo do sexo invlido ; fim sefim

    O exemplo mostra, por meio da utilizao do operador .ou. que somente ser apresentada a mensagem O cdigo do sexo vlido, caso o valor fornecido para a varivel codigo seja 1 ou 2. Qualquer outro valor fornecido apresentar a mensagem: O cdigo do sexo invlido.

  • 27

    Lgica de Programao4.7.3 Operador Lgico: .no.

    O operador do tipo .no. utilizado quando houver necessidade de estabelecer a inverso do resultado lgico de uma determinada condio. Se a condio for verdadeira, ser considerada falsa. Se a condio for falsa, ser considerada verdadeira. Abaixo, apresentada a tabela de deciso para este tipo de operador:

    Condio ResultadoFalsa VerdadeiroFalsa Verdadeiro

    Considere agora, como exemplo, que se voc possui um carro e o pneu est furado, voc no (NOT) pode viajar. o que mostra a tabela abaixo:

    Peneu Est furado ResultadoFalso VerdadeiroVerdadeiro Falso

    Portugus Estruturadose .no. (condio) ento < instrues executadas se condio no for verdadeira >fim se

    O operador .no. faz com que seja executada uma determinada operao se a condio no for verdadeira, portanto, considerada falsa ou vice-versa.

    4.7.3.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que somente efetue o clculo de C (A + B) * X, se o valor da

    varivel X no for maior que 5. Qualquer valor de 5 para baixo efetuar o clculo C (A + B) * X. Se forem informados os valores 5, 1 e 2, respectivamente, para as variveis A, B e X, resultar para a

    varivel C o valor 12, pois o valor 2 da varivel X controlado pela instruo se .no. (X > 5) ento, como sendo verdadeiro, uma vez que no maior que 5. Sendo assim, os valores 5 e 1 so somados resultando 6 e multiplicados por 2 resultando 12.

    Mas se forem informados os valores 5, 1 e 6, respectivamente, para as variveis A, B e X, resultar para a varivel C o valor 24, pois o valor 6 da varivel X controlado pela instruo se. no. (X > 5) ento, como sendo falso. Sendo assim, os valores 5 e 1 so subtrados resultando 4 e multiplicados por 6 resultando 24.

    aLgoriTmo1 Ler um valor numrico para a varivel A ,B, X;2 Se .no. (X > 5) ento calcular: C (A + B) * X caso contrrio calcular: C (A B) * X 3 - Apresentar o valor do resultado do clculo.Portugus Estruturadoincio inteiro: A, B, C, X;

    leia A, B, X;

    se .no. ( X > 5 ) ento C (A + B) * X; seno C (A B) * X; fim se

  • 28

    Escola Alcides Maya - Primeiro Mdulo escreva C;fim

    segUNdo eXemPLoLer trs valores para os lados de um tringulo, considerando lados como: A, B e C. Verificar se os lados

    fornecidos formam realmente um tringulo, e se for esta condio verdadeira, dever ser indicado qual tipo de tringulo foi formado: issceles, escaleno ou eqiltero.

    aLgoriTmoPara estabelecer este algoritmo, necessrio em primeiro lugar saber o que realmente um tringulo. Se

    voc no souber o que um tringulo, conseqentemente no conseguir resolver o problema. Tringulo uma forma geomtrica (polgono) composta por trs lados, sendo que cada lado menor que

    a soma dos outros dois lados. Perceba que isto uma regra (uma condio) e dever ser considerada. um tringulo quando A

  • 29

    Lgica de Programao4.8 Exerccios de Fixao

    1. Faa um Programa que leia as coordenadas de um ponto no plano (x,y) e escreva o quadrante ao qual pertence o ponto no plano. No primeiro quadrante x e y so positivos. No segundo quadrante y positivo. No terceiro quadrante nem x nem y positivo. No quarto quadrante x positivo.

    X

    Y

    Primeiro Quadrante

    Quarto Quadrante

    Terceiro Quadrante

    Segundo Quadrante

    2. Faa um Programa que leia o QI de uma pessoa e escreva uma mensagem baseada na tabela abaixo. Observe que os colchetes identificam um intervalo fechado e os parnteses identificam um intervalo aberto.

    [ 000, 030 ) - Ameba[ 030, 050 ) - Dbil Mental[ 050, 070 ) - Regular[ 070, 100 ) - Normal[ 100, 150 ] - GnioOutros - QI invlido

    3. Faa um Programa que leia trs notas de uma pessoa. Calcular a mdia e apresentar um conceito conforme a tabela abaixo:

    [ 10, 09 ] - A ( 09, 07 ] - B ( 07, 04 ] - C ( 04, 00 ] - D

    4. A empresa XYZ & Cia Ltda decidiu conceder um aumento de salrios a seus funcionrios de acordo com a tabela abaixo:

    SALRIO ATUAL NDICE DE AUMENTODe 0 at 400 15%Acima de 400 at 700 12%Acima de 700 at 1000 10%Acima de 1000 at 1800 7%Acima de 1800 at 2500 4%Acima de 2500 0%

  • 30

    Escola Alcides Maya - Primeiro MduloFaa um Programa que leia o nmero do funcionrio, o seu salrio atual. Calcular e apresentar o valor do

    salrio j corrigido. 5. Determine o resultado lgico das expresses mencionadas, assinalando se so verdadeiras ou falsas..

    Considere para as repostas os seguintes valores: X = 1, A = 3, B = 5, C = 8 e D = 7.a) .no. ( X > 3 ) Verdadeiro ( ) Falso ( )b) ( X < 1 ) .e. ( B > D) Verdadeiro ( ) Falso ( )c) ( D < 0 ) .e. ( C > 5 ) Verdadeiro ( ) Falso ( )d) ( X > 3 ) .ou. ( C < 7 ) Verdadeiro ( ) Falso ( )e) ( A > B ) .ou. ( C > B ) Verdadeiro ( ) Falso ( )f) ( X >= 2 ) Verdadeiro ( ) Falso ( )g) ( X < 1 ) .e. ( B >= D ) Verdadeiro ( ) Falso ( )h) ( D < 0 ) .ou. ( C > 5 ) Verdadeiro ( ) Falso ( )i) .no. ( D > 3 ) Verdadeiro ( ) Falso ( )j) ( A > B ) .ou. ( C < B ) Verdadeiro ( ) Falso ( )

    6. Indique a sada dos trechos de programa em portugus estruturado, mostrado abaixo. Para as sadas considere os seguintes valores: A=2, B=3, C=5 e D=9. No necessrio calcular os valores de X. Marque na resposta apenas a frmula que ser executada de acordo com a condio.

    a Resposta: ____________________________________________________________________

    se ( D > 5 ) ento X ( A + B ) * Dseno X ( A B ) / Cfim seescreva X

    b Resposta: ____________________________________________________________________

    se ( A > 2 ) .e. ( B < 7 ) ento X ( A + 2 ) * ( B 2 )seno X ( A + B ) / D * ( C + D )fim seescreva X

    c Resposta: ____________________________________________________________________

    se ( A = 2 ) .ou. ( B < 7 ) ento X ( A + 2 ) * ( B 2 )seno X ( A + B ) / D * ( C + D )fim seescreva X

  • 31

    Lgica de Programao

    d Resposta: ____________________________________________________________________

    se ( A > 2 ) .ou. ( B < 7 ) ento X A + B - 2seno X A B fim seescreva X

    e Resposta: ____________________________________________________________________

    se .no. ( A > 2 ) .ou. .no. ( B < 7 ) ento X A + B seno X A / B fim seescreva X

    f Resposta: ____________________________________________________________________

    se ( A > 3 ) .e. ( B < 5 ) ento X A + Dseno X D / Bfim seescreva X

    g Resposta: ____________________________________________________________________

    se ( C >= 2 ) .e. ( B = 2 ) .ou. ( C

  • 32

    Escola Alcides Maya - Primeiro Mdulo

    7. Desenvolva os algoritmos em portugus estruturado dos seguintes programas:

    a) Ler dois valores numricos inteiros e apresentar o resultado da diferena do maior pelo menor valor.b) Efetuar a leitura de um valor inteiro positivo ou negativo e apresentar o nmero lido como sendo um valor

    positivo, ou seja, o programa dever apresentar o mdulo de um nmero fornecido. Lembre-se de verificar se o nmero fornecido menor que zero; sendo, multiplique-o por 1.

    c) Ler quatro valores referentes a quatro notas escolares de um aluno e escrever uma mensagem dizendo que o aluno foi aprovado, se o valor da mdia escolar for maior ou igual a 7. Se o aluno no for aprovado indicar uma mensagem informando esta condio. Apresentar junto das mensagens o valor da mdia do aluno para qualquer condio.

    d) Ler quatro valores referentes a quatro notas escolares de um aluno e escrever uma mensagem dizendo que o aluno foi aprovado, se o valor da mdia escolar for maior ou igual a 7. Se o valor da mdia for menor do que 7, solicitar a nota de exame, somar com o valor da mdia e obter nova mdia. Se a nova mdia for maior ou igual a 5, apresentar uma mensagem dizendo que o aluno foi aprovado em exame. Se o aluno no foi aprovado, indicar uma mensagem informando esta condio. Apresentar com as mensagens o valor da mdia do aluno, para qualquer condio.

    e) Efetuar a leitura de trs valores (variveis A, B e C) e efetuar o clculo da equao completa de segundo grau, apresentando as duas razes, se para os valores informados for possvel efetuar o referido clculo. Lembre-se de que a varivel A deve ser diferente de zero.

    f) Efetuar a leitura de trs valores (variveis A, B e C) e apresenta-los dispostos em ordem crescente. Para solucionar o problema, utilizar os conceitos da propriedade distributiva e troca de valores entre variveis.

    g) Efetuar a leitura de quatro nmeros inteiros e apresentar os nmeros que so divisveis por 2 e 3.h) Efetuar a leitura de cinco nmeros inteiros e identificar o maior e o menor valores.i) Elaborar um programa que efetue a leitura de um nmero inteiro e apresentar uma mensagem informando

    se o nmero par ou mpar.j) Elaborar um programa que efetue a leitura de um valor que esteja entre a faixa de 1 a 9. Aps a leitura

    do valor fornecido pelo usurio, o programa dever indicar uma de duas mensagens: O valor est na faixa permitida, caso o usurio fornea o valor nesta faixa, ou a mensagem O valor est fora da faixa permitida, caso o usurio fornea valores menores que 1 ou maiores que 9.

    k) Elaborar um programa que efetue a leitura de um nmero inteiro e efetue a sua apresentao, caso o valor no seja maior que trs.

    5 ESTRUTURAS DE CONTROLE LAOS DE REPETIO

    Existem ocasies em que necessrio efetuar a repetio de um trecho de programa um determinado nmero de vezes. Neste caso, poder ser criado um looping que efetue o processamento de um determinado trecho, tantas vezes quantas forem necessrias. Os loopings tambm so chamados de laos de repetio.

    Supondo que um programa deva executar um determinado trecho de instrues por cinco vezes. Com o conhecimento adquirido at este momento, voc iria escrever o mesmo trecho, repetindo-o o nmero de vezes necessrias.

    Por exemplo, imagine um programa que pea a leitura de um valor para a varivel num, multiplique esse valor por 3, colocando a resposta na varivel result e apresente o valor obtido, repetindo esta seqncia por cinco vezes, conforme mostrado abaixo:

    PorTUgUs esTrUTUradoincio inteiro: num, result;

    leia num; result num * 3; escreva result;

    leia num;

  • 33

    Lgica de Programao result num * 3; escreva result;

    leia num; result num * 3; escreva result;

    leia num; result num * 3; escreva result;

    leia num; result num * 3; escreva result;fim

    Para estes casos existem comandos apropriados para efetuar a repetio de determinados trechos de programas o nmero de vezes que for necessrio. A principal vantagem deste recurso que o programa passa a ter um tamanho menor, podendo sua amplitude de processamento ser aumentada sem alterar o tamanho do cdigo de programao. Desta forma, pode-se determinar repeties com nmeros variados de vezes.

    5.1 Repetio do tipo: Teste Lgico no incio do loopingCaracteriza-se por uma estrutura que efetua um teste lgico no incio de um looping, verificando se permitido

    executar o trecho de instrues subordinado a esse looping. A estrutura em questo denominada de enquanto, sendo conseguida com a utilizao do conjunto de instrues enquanto...faa...fim_enquanto.

    A estrutura enquanto...faa...fim_enquanto tem o seu funcionamento controlado por deciso. Sendo assim, poder executar um determinado conjunto de instrues enquanto a condio verificada for Verdadeira. No momento em que esta condio se torna Falsa, o processamento da rotina desviado para fora do looping. Se a condio for Falsa logo de incio, as instrues contidas no looping so ignoradas.

  • 34

    Escola Alcides Maya - Primeiro MduloNo incio desta aula fizemos um programa que fazia a leitura de um valor para a varivel num, multiplicava

    esse valor por 3, colocando a resposta na varivel result e apresentava o valor obtido, repetindo esta seqncia por cinco vezes, porque no conhecamos a estrutura enquanto...faa...fim_enquanto, agora vamos fazer o mesmo exemplo utilizando a estrutura para o controle do lao de repetio.

    FLUXogramaCuidado para no confundir esta nova estrutura com a estrutura de deciso usada anteriormente. Aqui existe

    um retorno condio aps a execuo do bloco de operaes, at que a condio se torne falsa.

    Condio

    Instrues executadas enquanto

    a condio verdadeira

    S

    N

    Figura 5.2 Fluxograma da instruo enquanto...faa...fim_enquanto

    5.1.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que faa a leitura de um valor para a varivel num, multiplique esse

    valor por 3, colocando a resposta na varivel result e apresentar o valor obtido, repetindo esta seqncia por cinco vezes.

    aLgoriTmo1 Criar uma varivel para servir de contador com valor inicial 1;2 Enquanto o valor do contador for menor ou igual a 5, processar os passos 3, 4, 5 e 63 Ler um valor para a varivel num;4 Efetuar a multiplicao do valor de num por 3, atribuindo o resultado em result;5 Apresentar o valor calculado contido na varivel result;6 Acrescentar +1 a varivel do tipo contador, definida no passo 1;7 Quando contador for maior que 5, encerrar o processamento do looping.

  • 35

    Lgica de ProgramaoPorTUgUs esTrUTUradoincio inteiro: num, result; inteiro: cont;

    cont 1; enquanto ( cont

  • 36

    Escola Alcides Maya - Primeiro MdulosegUNdo eXemPLoPara ilustrar de forma um pouco diferente, imagine que o primeiro exemplo dever ser executado enquanto

    o usurio queira. Desta forma, em vez de possuir dentro da rotina um contador de vezes, pode-se possuir uma instruo pedindo que o usurio informe se deseja continuar ou no.

    aLgoriTmo1 Criar uma varivel para ser utilizada como resposta;2 Enquanto a reposta for sim, executar os passos 3, 4 e 5.3 Ler um valor para a varivel num;4 Efetuar a multiplicao do valor de num por 3, atribuindo o resultado em result;5 Apresentar o valor calculado contido na varivel result;6 Quando a resposta for diferente de sim, encerrar o processamento do looping.PorTUgUs esTrUTUradoincio inteiro: num, result; caractere: resp;

    resp S; enquanto ( resp = S ) faa leia num; result num * 3; escreva result; escreva Deseja continuar ?; leia resp; fim enquanto fim

    Veja que o contador foi substitudo pela varivel resp, que enquanto for igual a S executar a rotina existente entre as instrues enquanto e fim_enquanto.

    Neste caso, o nmero de vezes que a rotina ir repetir ser controlado pelo usurio e ser encerrada somente quando alguma informao diferente de S for fornecida para a varivel resp.

    5.1.2 Exerccios de Fixao

    Vamos fazer alguns exerccios

    1. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a soma dos valores lidos.

    2. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a mdia dos valores lidos.

    3. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a soma dos valores positivos e a soma dos valores negativos.

    4. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a soma dos valores positivos e a mdia dos valores negativos.

  • 37

    Lgica de Programao5.2 Repetio do tipo: Teste Lgico no fim do looping

    Caracteriza-se por uma estrutura que efetua um teste lgico no fim de um looping.Esta estrutura parecida com a enquanto. A estrutura em questo denominada de repita, sendo conseguida

    com a utilizao do conjunto de instrues repita...at_que. A estrutura repita...at_que tem o seu funcionamento controlado por deciso. Porm, ir efetuar a execuo de

    um conjunto de instrues pelo menos uma vez antes de verificar a validade da condio estabelecida. Diferente da estrutura enquanto que executa somente um conjunto de instrues, enquanto a condio verdadeira.

    Desta forma repita tem seu funcionamento em sentido contrrio a enquanto, pois sempre ir processar um conjunto de instrues no mnimo uma vez at que a condio se torne verdadeira. Para a estrutura repita um conjunto de instrues executado enquanto a condio se mantm Falsa at que ela seja Verdadeira.

    5.2.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que faa a leitura de um valor para a varivel num, multiplique esse

    valor por 3, colocando a resposta na varivel result e apresentar o valor obtido, repetindo esta seqncia por cinco vezes. o mesmo exemplo utilizado na estrutura enquanto para que voc possa fazer uma comparao entre as estruturas.

    aLgoriTmo1 Criar uma varivel para servir de contador com valor inicial 1;2 Ler um valor para a varivel num;3 Efetuar a multiplicao do valor de num por 3, atribuindo o resultado em result;4 Apresentar o valor calculado contido na varivel result;5 Acrescentar +1 a varivel do tipo contador, definida no passo 1;6 Repita os passos 2, 3, 4 e 5 at que o contador seja maior que 5. PorTUgUs esTrUTUradoincio inteiro: num, result; inteiro: cont;

    cont 1; repita leia num; result num * 3; escreva result; cont cont + 1; at que ( cont > 5 ) fimLogo aps o incio do programa, a varivel contador atribuda com o valor 1 ( cont 1 ). Em seguida a instruo

    repita indica que todo trecho de instrues situado at a instruo at_que dever ter o seu processamento repetido at que a condio cont > 5 seja satisfeita.

    Sendo assim, tem incio a execuo da rotina de instrues contidas em ter as instrues repita e at_que. Depois de efetuar a primeira execuo das instrues, o programa encontra a linha cont cont + 1 ; neste momento a varivel cont somada a mais 1, passando a ter o valor 2. Em seguida encontrada a linha com a instruo at_que ( cont > 5 ) , que efetuar o retorno instruo repita para que seja reprocessada a seqncia de comandos, at que o valor da varivel cont seja maior que 5 e encerre o looping.

  • 38

    Escola Alcides Maya - Primeiro Mdulo5.2.1.1 Exerccios de Fixao

    Vamos fazer alguns exerccios

    1. Faa um Programa que escreva na tela os nmeros de 0 at 10.2. Faa um Programa que escreva na tela os nmeros mpares de 0 at 20.3. Faa um Programa que escreva na tela os nmeros de 10 at -54. Faa um Programa que leia 10 valores inteiros e escreva no final a soma dos valores lidos.5. Faa um Programa que leia 10 valores inteiros e escreva no final a mdia dos valores lidos.6. Faa um Programa que leia 20 valores e escreva no final a soma dos valores positivos e a mdia dos

    negativos.

    5.2.2 Exerccio de Aula

    segUNdo eXemPLoA seguir, apresentado o exemplo em que no se utiliza o contador como forma de controle de execuo

    de uma rotina em uma estrutura de repetio. Considere que ser o usurio que encerrar o processamento segundo a sua vontade.

    aLgoriTmo1 Criar uma varivel para ser utilizada como resposta;2 Ler um valor para a varivel num;3 Efetuar a multiplicao do valor de num por 3, atribuindo o resultado em result;4 Apresentar o valor calculado contido na varivel result;5 Repetir os passos 2, 3, 4 e 5 at que a resposta do usurio seja no.PorTUgUs esTrUTUradoincio inteiro: num, result; caractere: resp;

    repita leia num; result num * 3; escreva result; escreva Deseja continuar ?; leia resp; at que ( resp < > S ) fimVeja que a varivel resp no precisou ser inicializada com algum valor, pois mesmo que o tivesse feito, no

    exerceria influncia direta sobre a estrutura repita, uma vez que no mnimo so sempre executadas as instrues constantes no looping, para somente no final ser verificada a condio, no caso resp S

    5.2.2.1 Exerccios de FixaoVamos fazer alguns exerccios

    1. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a soma dos valores lidos.

    2. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a mdia dos valores lidos.

    3. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a soma dos valores positivos e a soma dos valores negativos.

    4. Faa um Programa que leia nmeros at que o usurio no queira mais digitar os nmeros. No final escrever a soma dos valores positivos e a mdia dos valores negativos.

  • 39

    Lgica de Programao5.3 Repetio do tipo: Varivel de Controle

    Anteriormente, foram vistas duas formas de elaborar looping. Uma usando o conceito enquanto e a outra usando o conceito repita. Foi visto tambm como elaborar rotinas que efetuaram a execuo de um looping um determinado nmero de vezes com a utilizao de um contador (por meio de uma varivel de controle).

    Porm, existe uma possibilidade de facilitar o uso de contadores finitos sem fazer uso das duas estruturas anteriores, deixando-as para utilizao de loopings em que no se conhece de antemo o nmero de vezes que uma determinada seqncia de instrues dever ser executada. Os loopings que possuem um nmero finito de execues podero ser processador por meio de estrutura de laos contados do tipo para, sendo conseguida com a utilizao do conjunto de instrues para...de...at...passo...faa...fim_para.

    A estrutura para...de...at...passo...faa...fim_para tem o seu funcionamento controlado por uma varivel denominada contador. Sendo assim, poder executar um determinado conjunto de instrues um determinado nmero de vezes.

    FLUXogramaCom relao ao fluxograma, ser indicada a varivel a ser controlada com a implicao dos valores de incio,

    fim e incremento, separados por vrgula. Para representar esta operao em um fluxograma, ser utilizado o smbolo denominado Processamento predefinido ou Preparao, representado pela figura de um hexgono.

    Figura 5.7 Estrutura do smbolo da instruo para...fim_paraPortugus Estruturadopara de at passo faa fim_para

    5.3.1 Exerccio de Aula

    Primeiro eXemPLoDesenvolver a lgica para um programa que faa a leitura de um valor para a varivel num, multiplique esse

    valor por 3, colocando a resposta na varivel result e apresentar o valor obtido, repetindo esta seqncia por cinco vezes. o mesmo exemplo utilizado na estrutura enquanto para que voc possa fazer uma comparao entre as estruturas.

    aLgoriTmo1 Definir um contador, variando de 1 a 5;2 Ler um valor para a varivel num;3 Efetuar a multiplicao do valor de num por 3, atribuindo o resultado em result;4 Apresentar o valor calculado contido na varivel result;5 Repitir os passos 2, 3, 4 e 5 at que o contador seja encerrado. PorTUgUs esTrUTUradoincio inteiro: num, result; inteiro: cont;

    para cont de 1 at 5 passo 1 faa leia num; result num * 3; escreva result; fim para fim

  • 40

    Escola Alcides Maya - Primeiro MduloSer executado o conjunto de instrues entre a instruo para e a instruo fim_para, sendo a varivel cont

    (varivel de controle) inicializada com valor 1 e incrementada de mais 1 por meio da instruo passo at o valor 5. Esse tipo de estrutura de repetio poder ser utilizada todas as vezes que houver a necessidade de repetir trechos finitos, em que se conhecem os valores inicial e final.

    segUNdo eXemPLoDesenvolver a lgica para um programa que escreva na tela os nmeros de 1 at 10.Repare que estamos desejando escrever os nmeros na seguinte seqncia: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.Vamos utilizar a estrutura para...de...at...passo...faa...fim_para mas com o passo incrementando o valor da

    varivel contadora.Algoritmo1 Definir um contador, variando de 1 a 10;2 Apresentar o valor contido na varivel contador;5 Repitir o passo 2 at que o contador seja encerrado.Portugus Estruturadoincio inteiro: cont;

    para cont de 1 at 10 passo 1 faa escreva cont; fim para fim Terceiro eXemPLoDesenvolver a lgica para um programa que escreva na tela os nmeros de 10 at 1.Repare que estamos desejando escrever os nmeros na seguinte seqncia: 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.Vamos utilizar a estrutura para...de...at...passo...faa...fim_para mas com o passo decrementando o valor

    da varivel contadora.Algoritmo1 Definir um contador, variando de 10 a 1;2 Apresentar o valor contido na varivel contador;5 Repitir o passo 2 at que o contador seja encerrado.Portugus Estruturadoincio inteiro: cont;

    para cont de 10 at 1 passo -1 faa escreva cont; fim para fim

    5.3.2 Exerccios de Fixao

    Vamos fazer alguns exerccios

    1. Faa um Programa que escreva na tela os nmeros de 0 at 50.2. Faa um Programa que escreva na tela os nmeros pares de 0 at 20.3. Faa um Programa que escreva na tela os nmeros de 20 at 0.4. Faa um Programa que escreva na tela os nmeros de 50 at 0.5. Faa um Programa que escreva na tela os nmeros pares de 20 at 0.6. Faa um Programa que escreva na tela os nmeros mpares de 20 at 0.

  • 41

    Lgica de Programao

    5.4 Exerccios de Fixao

    Desenvolva a codificao em portugus estruturado dos seguintes programas:

    1. Faa um Programa que escreva a soma dos nmeros de 1 at 100, ou seja, quanto 1+2+3+...+98+99+100.

    2. Faa um Programa que leia 10 valores e escreva no final a soma dos valores lidos.3. Faa um Programa que leia 10 valores e escreva no final a soma dos valores positivos e a mdia dos

    negativos.4. Faa um Programa que leia valores e escreva no final a soma dos valores positivos e a mdia dos

    negativos. Neste programa o usurio quem vai determinar o fim da leitura dos nmeros, ou seja, voc dever perguntar ao usurio se ele deseja continuar digitando valores.

    5. Faa um Programa que leia 4 notas escolares de 15 alunos. Para cada um dos alunos calcular e apresentar a mdia.

    6. Faa um Programa que leia 4 notas escolares de n alunos. Para cada um dos alunos calcular e apresentar a mdia. Sabendo-se que a mdia da escola 7, informar tambm se o aluno foi Aprovado ou Reprovado. Neste programa o usurio quem vai determinar o fim da leitura das notas, ou seja, voc dever perguntar ao usurio se ele deseja continuar digitando notas.

    7. Faa um Programa que leia dois nmeros inteiros quaisquer. No final escrever os nmeros entre eles. Por exemplo, se forem digitados 6 e 2, dever escrever 6, 5, 4, 3 , 2. Mas se forem digitados 2 e 6, dever escrever 2, 3, 4, 5, 6.

    8. Faa um Programa que leia 20 vezes o cdigo de um produto. Os produtos podem ser:1 Panela2 Chaleira3 PratoOutro Cdigo invlidoAo final escrever o total digitado de cada cdigo, inclusive a quantidade de cdigos invlidos digitados.9. Faa um Programa que leia 4 notas escolares dos alunos de uma escola. Para cada um dos alunos

    calcular e apresentar a mdia e informar o conceito do aluno baseado na informao abaixo:[0 4) - Conceito D[4 7) - Conceito C[7 9) - Conceito B[9 10] - Conceito AOs colchetes marcam o intervalo fechado e os parnteses marcam um intervalo aberto. Neste programa o usurio quem vai determinar o fim da leitura das notas, ou seja, voc dever perguntar

    ao usurio se ele deseja continuar digitando notas.10. Faa um Programa que leia cdigos e execute tarefas, conforme tabela abaixo:0 Encerra o programa1 Inclui uma unidade no estoque2 Exclui uma unidade no estoque3 Mostra o total disponvel no estoque4 Mostra o total de entradas no estoque5 Mostra o total de sadas no estoqueOutro cdigo escrever: Cdigo Invlido 11. Faa um Programa para controlar o acesso de pessoas a um restaurante. O restaurante possui uma

    capacidade de 40 vagas, que no poder ser ultrapassada. O controle se dar atravs de cdigos, conforme a tabela:

    0 FIM1 ENTRA UMA PESSOA (escrever: Entrou)

  • 42

    Escola Alcides Maya - Primeiro Mdulo2 SAI UMA PESSOA (escrever: Saiu)3 MOSTRAR QUANTOS LUGARES ESTO DISPONVEIS4 MOSTRAR O TOTAL DE PESSOAS QUE ENTRARAM5 MOSTRAR O TOTAL DE PESSOAS QUE SARAMOutro cdigo escrever: Cdigo Invlido12. Faa um Programa que calcule o desconto do imposto de renda. O programa dever perguntar quando

    a pessoa deseja encerrar o programa (Deseja fazer outro clculo? (S/N)). O programa deve pedir o valor do salrio, calcular e apresentar o valor do desconto baseado na seguinte informao:

    Salrio at R$ 900,00 isento (No paga imposto de renda)Salrio acima de R$ 900,00 at R$ 1.800,00 para 15% de imposto de rendaSalrio acima de R$ 1.800,00 para 27% de imposto de renda13. Faa um Programa que leia o peso das pessoas que querem entrar em um elevador. A capacidade

    mxima do elevador de 15 pessoas ou 800 Kg, o que ocorrer primeiro. O programa deve ler o peso da pessoa que deseja entrar, se a sua entrada no fizer com que seja ultrapassado qualquer um dos limites, dever escrever: PODE ENTRAR, caso contrrio, ou seja, ultrapassando os limites, dever escrever: NO PODE ENTRAR: ELEVADOR LOTADO e encerrar o programa, mostrando o nmero de pessoas transportadas e o peso total transportado.

    14. Faa um Programa que leia dois nmeros e a operao desejada ( + , - , * , / ) e que escreva na tela o resultado da operao. O programa depois de apresentar o resultado dever perguntar quando a pessoa deseja encerrar o programa (Deseja fazer outro clculo? (S/N)). Se a reposta for S dever pedir outros nmeros e a operao desejada, se a resposta for N dever encerrar o programa.

    15. Em uma fbrica de chocolates, foi designado ao programador, fazer um programa que calcule o desconto de INSS dos funcionrios. Este programa deve ler o nome do funcionrio e o valor do salrio bruto. Calcular o desconto do INSS levando em considerao o seguinte:

    a) Para salrios at R$ 500,00 a alquota de INSS ser de 8%b) Para salrios acima de R$ 500,00 at R$ 1.000,00 a alquota de INSS ser de 10%c) Para salrios acima de R$ 1.000,00 a alquota de INSS ser de 12%Para cada funcionrio dever ser apresentado na tela:a) Nome do Funcionrio b) Salrio Brutoc) Taxa de INSSd) Valor de INSSe) Salrio LquidoAps estas apresentaes o programa dever fazer uma pergunta: Deseja fazer mais algum clculo? (S/N),

    se a resposta for afirmativa o programa dever continuar com os dados do prximo funcionrio, caso contrrio dever ser terminado.

    16. Faa um Programa que possibilite calcular a rea total de uma residncia (sala, cozinha, banheiro, quartos, rea de servio, quintal, garagem, etc). O programa deve solicitar a entrada do nome, a largura e o comprimento de um determinado cmodo. Em seguida, deve apresentar a rea do cmodo lido e tambm uma mensagem solicitando do usurio a confirmao de continuar calculando novos cmodos. Caso o usurio responda que NO, o programa deve apresentar o valor total acumulado da rea residencial.

    6 esTrUTUras de dados HomogNeas iDurante os pontos estudados em Desvios condicionais e Estruturas de repetio, percebeu-se que o poder de

    programao tornou-se maior, antes limitado somente ao que foi estudado em tcnicas bsicas de programao. Porm, tendo o domnio das tcnicas anteriores, ainda correr-se- o risco de no conseguir resolver alguns tipos de problemas, pois foram trabalhadas at aqui apenas variveis simples que somente armazenam um valor por vez.

    Vamos agora apresentar uma tcnica de programao que permitir trabalhar como o agrupamento de vrias informaes dentro de uma mesma varivel, sendo sempre do mesmo tipo de dado, e por esta razo chamado de estrutura de dados homognea.

  • 43

    Lgica de ProgramaoA utilizao deste tipo de estrutura de dados recebe diversos nomes, como: variveis indexadas, variveis

    compostas, variveis subscritas, arranjos, vetores, matrizes, tabelas em memria ou arrays (do ingls). So vrios os nomes encontrados, a que ns iremos tratar por matrizes.

    Vamos trabalhar com estes dados direcionados para a linguagem C, pois a escola ir tratar na disciplina de Fundamentos de Programao com esta linguagem. Portanto vamos adaptar a estrutura lgica para esta linguagem, facilitando assim o entendimento de nossos alunos.

    6.1 Matrizes de uma dimenso ou vetoresEste tipo de estrutura conhecida como matrizes unidimensionais ou tambm de vetor. Caracteriza-se por

    ser definida uma nica varivel dimensionada com um determinado tamanho. A dimenso de uma matriz constituda por uma constante inteira positiva. Os nomes dados s matrizes seguem as mesmas regras de nomes utilizados para identificar as variveis simples.

    Para ter uma idia de como utilizar matrizes em uma determinada situao considere o seguinte problema: Em uma Escola Tcnica de Informtica, h um professor que faz 6 avaliaes durante o semestre. Gostaramos de fazer um programa que leia as 6 notas de um aluno. No final calcular e apresentar a mdia do aluno.

    Desta forma ser necessrio somar as 6 notas de cada aluno e calcular a sua mdia. A tabela a seguir apresenta um aluno, suas notas bimestrais e a coluna da mdia do aluno que dever ser calculada.

    Aluno Nota 1 Nota 2 Nota 3 Nota 4 Nota 5 Nota 6 Mdia1 4.0 5.0 5.0 3.0 7.5 4.0 ?

    Agora basta escrever um programa para efetuar o clculo da mdia de cada aluno.Vamos comear pelo clculo da mdia de cada aluno, iremos representar as notas de cada aluno pelas

    variveis: nota1, nota2, nota3, nota4, nota5, nota6, e para o clculo da mdia a varivel media, todas do tipo real.

    Algoritmo1 Ler as notas do aluno para as variveis nota1, nota2, nota3, nota4, nota5, nota6;2 Efetuar a soma das notas e a diviso delas por 6, atribuindo o seu resultado para a varivel media;3 Apresentar o valor da varivel media aps a operao de soma e diviso dos valores fornecidos.

    Com o conhecimento adquirido at este momento, seria ento elaborado um programa que efetuaria a leitura de cada nota, a soma delas e a diviso do valor da soma por 6, obtendo-se desta forma a mdia do aluno.

  • 44

    Escola Alcides Maya - Primeiro MduloPorTUgUs esTrUTUradoincio real: nota1; real: nota2; real: nota3; real: nota4; real: nota5; real: nota6; real: nota7; real: soma; real: media;

    leia nota1; leia nota2; leia nota3; leia nota4; leia nota5; leia nota6;

    soma nota1 + nota2 + nota3 + nota4 + nota5 + nota6; media soma / 6;

    escreva media;fimPerceba que para receber as notas foram utilizadas 6 variveis. Com a tcnica de matrizes poderia ter sido

    utilizada apenas uma varivel com a capacidade de armazenar 6 valores.

    6.2 Operaes bsicas com Matrizes de uma dimenso

    Uma matriz de uma dimenso ou vetor ser representada por seu nome e seu tamanho (dimenso) entre colchetes. Desta forma seria uma matriz nota[6], sendo seu nome nota, possuindo um tamanho de 6.