Logica Programacao Web 1 Sem2

download Logica Programacao Web 1 Sem2

of 14

Transcript of Logica Programacao Web 1 Sem2

  • 7/25/2019 Logica Programacao Web 1 Sem2

    1/14e-Tec Brasil

    Aula 2 Conceitos bsicos para aconstruo de algoritmospara computadores

    Objetivos

    Entender a necessidade de se utilizar uma linguagem formal para

    construir algoritmos a serem interpretados por computadores.

    Compreender os conceitos de variveis, constantes e tipos de dados.

    Conhecer os conceitos de comandos de atribuio, entrada e sada

    de dados.

    Conhecer os operadores aritmticos e a ordem de precedncia.

    Construir nossos primeiros algoritmos em Portugol.

    2.1 Formalizando a escrita de algoritmosPara que os computadores sejam capazes de interpretar os algoritmos que

    desenvolvemos, precisamos transformar a sequncia de passos que escreve-

    mos em linguagem natural para uma linguagem que possa ser entendidapelo computador. Essas linguagens so chamadas de linguagens de pro-

    gramao. Existem diversas linguagens de programao em uso atualmen-

    te. Em nosso curso, a partir da aula 5, utilizaremos a linguagem C.

    Nesta aula, a fim de facilitar o aprendizado dos principais conceitos de pro-

    gramao, utilizaremos o Portugol. O Portugol uma linguagem que une o

    formalismo das linguagens de programao facilidade de compreenso da

    linguagem natural.

    Para entender a construo de algoritmos nessas linguagens, vamos iniciar

    estudando alguns conceitos bsicos como variveis e constantes.

    2.2 VariveisO primeiro passo para que um programa seja executado em um computador

    o carregamento desse programa para a memria. A memria utilizada

    MemriaMeio fsico para armazenardados temporariamente ou per-manentemente (TANENBAUM,1997, p.212).

    e-Tec BrasilAula 2 Conceitos bsicos para a construo de algoritmos para computadores 23

  • 7/25/2019 Logica Programacao Web 1 Sem2

    2/14

    para armazenar tanto as instrues dos programas quanto os dados utiliza-

    dos pelos mesmos. Qualquer programa, para ser executado, tem de estar na

    memria (FARRER, 1999).

    Ao desenvolvermos nossos algoritmos, frequentemente precisamos armaze-

    nar dados referentes ao problema, como um nome, um nmero ou mesmoo resultado de uma operao. Mas, para armazenar esses dados, precisamos

    solicitar ao computador que ele reserve uma rea da memria para nosso

    uso. A forma de solicitar ao computador que reserve memria chamada de

    declarao de variveis.

    A seguir exibe-se como declarar variveis em Portugol:

    Sintaxe:

    var

    nome_da_variavel : tipo_da_variavel

    var

    A palavra var utilizada para indicar o incio do bloco de declarao de vari-

    veis de um algoritmo. Essa palavra escrita apenas uma vez, independente

    do nmero de variveis a serem declaradas. Mas, no se preocupe com isso

    agora. Nesse momento o importante entender os conceitos de varivel ede tipo de varivel.

    nome_da_variavel

    Quando solicitamos que o computador reserve espao de memria, temos

    de informar como vamos nos referir a essa rea de memria reservada, ou

    seja, qual nomedaremos a esse espao de memria. Assim, toda varivel

    tem um nome atravs do qual referenciada. A seguir (item 2.2.1) apresen-

    taremos um conjunto de regras que devem ser seguidas para dar nomes s

    variveis. Caso queiramos declarar mais de uma varivel de um mesmo tipo,basta escrever os nomes desejados para as variveis separados por vrgula.

    tipo_da_variavel

    Precisamos informar o tipo de dadosque armazenaremos na varivel para

    que o computador saiba o tamanho do espao de memria que reservar.

    A seguir (item 2.2.2) sero apresentados os tipos que podem ser utilizados.

    Lgica de Programaoe-Tec Brasil 24

  • 7/25/2019 Logica Programacao Web 1 Sem2

    3/14

    2.2.1 Por que declarar variveis e como nome-las?Sempre que criamos uma varivel, ns o fazemos com o objetivo de arma-

    zenar algum tipo de valor especfico. Por exemplo, se estivermos desenvol-

    vendo um algoritmo que calcule o imposto de renda a ser pago por um

    assalariado, precisamos de variveis para armazenar o valor do salrio e para

    os resultados dos clculos. Assim, o nome dado varivel deve deixar claroo objetivo da mesma; devemos utilizar nomes sugestivos. Apesar de esta ser

    a principal diretriz quanto atribuio de nomes a variveis, algumas outras

    regras so apresentadas no Quadro 2.1.

    Quadro 2.1: Regras para nomear variveis

    REGRA EXEMPLO

    Inicie sempre por um caractere alfabtico, nunca por um

    nmero.Nome (correto) - 1nome (errado)

    No util ize caracteres especiais como , ( ) / * ; + . Nome(M); N*BNo coloque espaos em branco ou hfen entre nomes. salario-bruto

    Utilize, se necessrio,underline. salario_bruto

    Crie suas variveis com nomes sugestivos.Se vai guardar salrio de funcionrios, d varivel o

    nome salario.

    2.2.2 O que so tipos de variveis?Quando declaramos uma varivel, devemos ter em mente quais valores se-

    ro armazenados naquele espao de memria. essa observao que de-

    finir o tipo da varivel a ser declarado. Uma varivel pode ser de um dosseguintes tipos:

    Tipo inteiro:Declararemos variveis do tipo numrico inteiroquando pre-

    cisarmos armazenar valores inteiros, positivos ou negativos (0, 1, 5, 7, -10,

    -5...). Por exemplo, se precisarmos de uma varivel para armazenar o nme-

    ro de filhos de um funcionrio, o tipo ideal para essa varivel seria inteiro.

    Tipo real: Declararemos variveis do tipo numrico real para armazenar

    valores reais; em outras palavras, valores com ponto decimal (5.7, 3.2, -8.5).Esse seria o tipo ideal para armazenar, por exemplo, o salrio de funcionrios.

    Tipo caractere: Declararemos variveis do tipo literal caracterepara

    armazenar um nico caractere, que pode ser uma letra ou um smbolo.

    Por exemplo, para identificar o sexo do indivduo, armazenaremos apenas

    o caractere F ou M.

    e-Tec BrasilAula 2 Conceitos bsicos para a construo de algoritmos para computadores 25

  • 7/25/2019 Logica Programacao Web 1 Sem2

    4/14

    Tipo cadeia: Declararemos variveis do tipo literal cadeia para

    armazenar uma sequncia de caracteres, ou seja, uma palavra, uma

    mensagem, um nome. Assim, se precisarmos de uma varivel para

    armazenar o nome de uma pessoa, esse seria o tipo ideal.

    Tipo lgico:Declararemos variveis do tipo lgico para armazenar valoreslgicos. O valor de variveis desse tipo ser sempre VERDADEIRO ou FALSO.

    Lembrando a sintaxe:

    Assim, suponha que precisemos declarar uma varivel para armazenar a ida-de de uma pessoa, uma para o peso e uma terceira para o nome. Para o

    peso e a idade utilizaremos variveis do tipo inteiro e para o nome o tipo ser

    cadeia. Logo, essas declaraes ficariam assim:

    Atividade 2.1. Aprendemos algumas regras que devem ser seguidas para

    dar nomes a variveis. Assinale os nomes de variveis que obedecem a essas

    regras:

    a) ( ) nome

    b) ( ) telefone-celular

    c) ( ) nome+sobrenome

    d) ( ) 2taxa

    e) ( ) telefone_celular

    f) ( ) conta1

    Varivel uma posio nomeada dememria, que usada paraguardar um valor que pode

    ser modificado pelo programa

    (LAUREANO, 2005, p. 12

    Lgica de Programaoe-Tec Brasil 26

  • 7/25/2019 Logica Programacao Web 1 Sem2

    5/14

    Atividade 2.2. Para cada valor dado abaixo foi definido um tipo de varivel.

    Marque os pares valor e tipo definidos corretamente:

    a) ( ) valor = 2.5 tipo= real

    b) ( )valor = F tipo= inteiro

    c) ( ) valor = -2 tipo= inteiro

    d) ( ) valor = M tipo= caractere

    e) ( ) valor = 5 tipo= cadeia

    f) ( ) valor = -10.35 tipo= real

    g) ( ) valor = 38 tipo= real

    h) ( )valor = Jose tipo= cadeia

    i) ( ) valor = 135 tipo= inteiro

    j) ( )valor = 7.5 tipo= inteiro

    2.3. Voc est fazendo um algoritmo para calcular a mdia dos alunos a par-tir das notas de duas provas. Assim, precisar de trs variveis: uma para

    a nota da primeira prova, uma para a nota da segunda prova e uma para

    a mdia. Segundo as normas da instituio, as notas das provas devem

    ser nmeros inteiros de 0 a 10. J para a mdia podem ser atribudos

    valores com casas decimais. Utilizando a sintaxe de declarao de vari-

    veis em Portugol e as regras para definio de tipos e de nomes, indique

    como voc declararia essas 3 variveis. Dica: lembre-se de escolher

    nomes sugestivos para as variveis.

    2.3 ConstantesComo aprendemos, o valor de uma varivel pode ser alterado ao longo de

    seu algoritmo. Mas, s vezes, precisamos armazenar valores que no se

    alteram. Para isso existem as constantes.

    As constantes so criadas obedecendo s mesmas regras de

    nomenclatura j vistas em variveis. Diferem apenas no fato de

    e-Tec BrasilAula 2 Conceitos bsicos para a construo de algoritmos para computadores 27

  • 7/25/2019 Logica Programacao Web 1 Sem2

    6/14

    armazenar um valor constante, ou seja, que no se modifica durante a

    execuo de um programa.

    A sintaxe para a declarao de constantes em Portugol dada abaixo:

    Sintaxe:

    const

    nome_da_constantevalor

    const

    A palavra const utilizada para indicar o incio do bloco de declarao de

    constantes de um algoritmo. A exemplo da palavra var, const tambm

    escrita apenas uma vez, independente do nmero de constantes a seremdeclaradas.

    nome_da_constante

    o nome pelo qual vamos nos referir constante. Deve obedecer s mesmas

    regras que os nomes de variveis. Apenas para ficar fcil a diferenciao

    entre variveis e constantes em seus programas, aconselha-se que todas as

    letras dos nomes das constantes sejam maisculas.

    Como exemplo, considere um algoritmo que calcule o valor da contribuiode FGTS: 8% sobre o salrio, independentemente do valor do salrio. Assim,

    a taxa de 8% ser constante durante a execuo do programa. Logo, pode-

    ria declarar minha constanteda seguinte forma:

    2.4 Comandos de atribuio, entrada e sa-

    da de dados

    2.4.1 Comando de atribuioNa construo de algoritmos, depois que declaramos nossas variveis

    e constantes, geralmente precisamos indicar que elas armazenaro um

    determinado valor durante a execuo do programa. Para isso, utilizamos o

    comando de atribuio que, em Portugol, representado por uma seta (),

    conforme sintaxe abaixo:

    Constante uma varivel com valor

    pr-definido que no pode sermodificado por nenhuma funo

    de um programa (LAUREANO,2005, p.16)

    Lgica de Programaoe-Tec Brasil 28

  • 7/25/2019 Logica Programacao Web 1 Sem2

    7/14

    Sintaxe:

    identificadorexpresso

    identificador

    Nome da varivel ou constante a ser utilizada.

    expresso

    Valor ou expresso a ser armazenado (veremos ainda neste captulo que

    podemos ter expresses aritmticas e expresses lgicas).

    Exemplos:

    Os sinais /* e */ indicam o incio e o fim de um comentrio, que pode ocupar

    mais de uma linha. Os sinais // indicam um comentrio que vai at o fim da linha.

    Em programao utilizamos comentrios para explicar a lgica utilizada em

    nossos algoritmos.

    2.4.2 Comando de entrada de dadosFrequentemente, na construo de algoritmos, precisamos solicitar que

    usurios informem, por meio do teclado, alguns valores a serem utilizados

    durante a execuo. Por exemplo: se fizermos um algoritmo para calcular a

    mdia das notas de um aluno, precisaremos solicitar quais foram as notas,

    para depois calcularmos a mdia. Esses valores informados devem ser

    armazenados em variveis para que sejam utilizados quando necessrio.

    O comando de entrada de dados ser responsvel pela leitura e

    armazenamento desses dados na varivel que indicarmos. A sintaxe docomando de entrada de dados em Portugol exibida abaixo:

    Sintaxe: leia(variavel)

    leia( )

    Funo responsvel por ler o que o usurio digitou e armazenar o valor na

    varivel indicada.

    e-Tec BrasilAula 2 Conceitos bsicos para a construo de algoritmos para computadores 29

  • 7/25/2019 Logica Programacao Web 1 Sem2

    8/14

    variavel

    Nome da varivel utilizada para armazenar o valor digitado.

    Exemplo:

    2.4.3 Comando de sada de dadosPor meio da utilizao do comando de sada de dados, conseguimos exibir

    mensagens ou valores para o usurio de nossos programas. atravs desse

    comando que nosso algoritmo consegue se comunicar com o usurio para

    solicitar a entrada de dados ou para fornecer sadas de dados.

    O comando de sada de dados exibe no monitor valores de constantes,variveis ou expresses. A sintaxe do comando de sada de dados em

    Portugol exibida abaixo:

    Sintaxe: escreva(expressao)

    escreva( )

    Funo responsvel por escrever no monitor uma mensagem para o usurio.

    expressaoIndica o que ser escrito no monitor. normalmente composta por um texto

    fixo seguido por uma vrgula e um nome de varivel.

    Para exemplificar a utilizao dos comandos de entrada e de sada de dados,

    vamos criar nosso primeiro algoritmo completo em Portugol. Mas, antes dis-

    so, vamos ver a estrutura geral de um algoritmo em Portugol:

    Estrutura Geral de um algoritmo em Portugol:

    algoritmo nome_do_algoritmo

    const

    /*Aqui devem ser declaradas todas as constantes do nosso algoritmo se-

    guindo as regras de sintaxe j estudadas. Caso nosso algoritmo no ne-

    cessite de constantes, esta seo no deve existir.*/

    Lgica de Programaoe-Tec Brasil 30

  • 7/25/2019 Logica Programacao Web 1 Sem2

    9/14

    var

    /*Aqui devem ser declaradas todas as variveis do nosso algoritmo se-

    guindo as regras de sintaxe j estudadas. Caso nosso algoritmo no ne-

    cessite de variveis, esta seo no deve existir.*/

    inicio

    /*Aqui ficar o corpo do algoritmo, ou seja, o conjunto de comandos que

    formar o algoritmo em si.*/

    fim

    A seguir, nosso primeiro exemplo de algoritmo completo em Portugol. Neste

    exemplo solicitamos que o usurio digite seu nome e depois imprimimos na

    tela uma saudao ao mesmo. Note que, como no utilizamos constantes

    neste algoritmo, ele no faz uso do bloco const.

    Exemplo:

    Assim, caso o usurio tenha digitado o nome Maria, ser exibida no monitor

    a seguinte mensagem: Bom dia Maria.

    Atividade 2.4. Assinale os comandos de atribuio realizados corretamente:

    a) ( ) var cadeia SEXOF

    b) ( ) var inteiro ALTURA1.80

    c) ( ) var real SALRIO 3000.00

    e-Tec BrasilAula 2 Conceitos bsicos para a construo de algoritmos para computadores 31

  • 7/25/2019 Logica Programacao Web 1 Sem2

    10/14

    d) ( ) var cadeiaNOME

    Atividade 2.5. No programa abaixo, dois valores inteiros so lidos e soma-

    dos e o resultado dessa soma mostrado no final da execuo. Analise as

    linhas do programa e assinale as afirmaes corretas:

    a) ( ) linha 6O primeiro valor digitado no teclado est sendo lido e arma-

    zenado em num1,

    b) ( ) linha 7 O segundo valor digitado no teclado est sendo lido e ar-

    mazenado em num2,

    c) ( ) linha 9 O resultado da soma dos valores digitados est sendo atri-

    budo varivel soma,

    d) ( ) linha 10 No monitor sero exibidas a mensagem que est entre

    aspas e a soma dos nmeros digitados.

    Atividade 2.6. Faa um algoritmo que solicite que o usurio digite seu

    nome e a seguir solicite que seja digitada sua idade. Depois que o usurio

    digitar o nome e a idade, o programa deve exibir na tela duas mensagens:uma com o nome e outra com a idade do usurio. Suponha que o usurio

    seja o Pedro e tenha 32 anos. Assim, aps a digitao dos dados, seu pro-

    grama deve exibir as seguintes mensagens: Seu nome Pedro eVoc

    tem 32 anos.

    Lgica de Programaoe-Tec Brasil 32

  • 7/25/2019 Logica Programacao Web 1 Sem2

    11/14

    2.5 Operadores aritmticos e expressesaritmticasOs operadores aritmticos so smbolos que representam operaes aritm-

    ticas, ou seja, as operaes matemticas bsicas. O Quadro 2.2 apresenta os

    operadores aritmticos que utilizaremos neste curso.

    Quadro 2.2: Operadores aritmticos

    Operador Operao matemtica

    + Adio

    - Subtrao

    * Multiplicao

    / Diviso

    % Resto da Diviso Inteira

    Os operadores aritmticos so utilizados para formar expresses aritmticas.

    As expresses aritmticas so formadas por operadores aritmticos queagem sobre operandos. Os operandos podem ser variveis ou constantes

    do tipo numrico, ou seja, inteiros ou reais. Abaixo temos dois exemplos de

    expresses aritmticas:

    nota/2

    x*2+y/2

    Para resolver expresses aritmticas formadas por mais de um operador,deve-se utilizar uma ordem de precedncia entre os mesmos. O Quadro 2.3

    exibe essa ordem de precedncia.

    Quadro 2.3: Ordem de precedncia entre operadores aritmticos

    Prioridade Operador Operao

    1 * / %multiplicao, diviso, resto da

    diviso

    2 + - adio, subtrao

    Alm da ordem de prioridades definida acima, podemos utilizar parnteses.

    Assim, resolvemos primeiro as expresses contidas nos parnteses mais

    internos, seguindo a ordem de precedncia entre operadores, passando

    depois para os parnteses mais externos. Por exemplo, na expresso:

    nota1 + (nota2 + nota3) / 2

    Primeiro somamos nota2 a nota3. O resultado divido por 2 e s depois

    e-Tec BrasilAula 2 Conceitos bsicos para a construo de algoritmos para computadores 33

  • 7/25/2019 Logica Programacao Web 1 Sem2

    12/14

    somamos com nota 1.

    Um fato interessante que o resultado da execuo de expresses

    aritmticas sempre um valor numrico (inteiro ou real) que pode ento

    ser atribudo a uma varivel numrica por meio do uso do comando de

    atribuio estudado anteriormente.

    Resumindo:

    expresses aritmticas: uma conta a ser feita;

    operadores aritmticos: os sinais + - * / %;

    operandos aritmticos: constantes ou variveis (inteiras ou reais), ou ou-

    tra expresso aritmtica;

    precedncia na ordem dos clculos: a mesma da matemtica, podendo

    haver vrios nveis de parnteses; no h colchetes [ ] ou chaves { }.

    Como exemplo, vamos criar um algoritmo para ler e multiplicar dois nmeros

    inteiros e exibir o resultado.

    importante observar cada linha desta sequncia:

    Vamos entender todas as linhas do nosso algoritmo:

    linha 1 ... Nome do programa.

    Lgica de Programaoe-Tec Brasil 34

  • 7/25/2019 Logica Programacao Web 1 Sem2

    13/14

    linha 2 ... Indica o incio do bloco de declarao de variveis.

    linha 3 ... Declarao das trs variveis do tipo inteiro necessrias ao programa.

    linha 4 ... Indica o incio do bloco de instrues do algoritmo.

    linha 5 ... O comando escrevaexibir na tela do computador uma mensa-

    gem que solicita a digitao do primeiro nmero.

    linha 6 ... O primeiro nmero digitado ser lido e armazenado na varivel num1.

    linha 7 ... O comando escrevaexibir na tela do computador uma mensagem

    que solicita a digitao do segundo nmero.

    linha 8 ... O segundo nmero digitado ser lido e armazenado na varivel num2.

    linha 9 ... A varivel mult receber o resultado da multiplicao do primeiro

    nmero pelo segundo nmero.

    linha 10 ... O comando escreva exibir na tela do computador uma

    mensagem com o resultado da multiplicao.

    linha 11 ... Indica o fim do algoritmo.

    ResumoNesta aula voc viu alguns conceitos bsicos de programao, variveis,

    constantes e tipos de dados e conheceu uma linguagem formal para escre-

    ver algoritmos: o Portugol.

    Voc implementou seus primeiros algoritmos em Portugol, utilizando co-

    mandos de atribuio, entrada e sada de dados e operadores aritmticos.

    Atividades de aprendizagemGuarde esses algoritmos, voc os utilizar mais tarde. Alis, isto um trabalho

    de engenharia: voc sempre deve aproveitar o que desenvolveu antes e no

    ficar reinventando a roda.

    1. Resolva as seguintes expresses aritmticas considerando A=2, B=5 e C=10:

    a) A+B*C/A

    e-Tec BrasilAula 2 Conceitos bsicos para a construo de algoritmos para computadores 35

  • 7/25/2019 Logica Programacao Web 1 Sem2

    14/14

    b) B+C%A*(B-A/2)

    c) (B+C)%2+A*(B+(C*4))

    2. O algoritmo abaixo dever ler duas notas, calcular a mdia e mostrar o resultado.

    Para que o algoritmo seja executado corretamente, complete-o com os comandos

    que faltam:

    3. Faa o mesmo no algoritmo abaixo, cuja finalidade calcular 8% de au-

    mento sobre um salrio:

    4. Faa um algoritmo que leia um nmero inteiro e imprima seu antecessore seu sucessor.

    5. Faa um algoritmo que leia dois nmeros reais e imprima a soma e a

    mdia aritmtica desses nmeros.

    6. Faa um algoritmo que receba como entrada as medidas dos dois catetos

    de um tringulo retngulo e calcule e exiba a medida da hipotenusa e a

    rea do tringulo.