c_pag_13_46

Upload: eneias-oliveira-de-liz

Post on 08-Aug-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/22/2019 C_pag_13_46

    1/34

    unIDADE I

    COnCEITOS InICIAIS

    Objetivos de Aprendizagem

    Conhecerosconceitos iniciaisdeprogramao,da linguagemCeaestruturadeum programa em C.

    Estudar ostiposdedados,variveis,constantes,expresseseoperadores. Entendercomorealizaratribuio,entradaesadadedados.

    Plano de Estudo

    A seguir, apresentam-se os tpicos que voc estudar nesta unidade:

    LinguagemC

    ConceitosIniciaisdeProgramao

    EstruturadeumProgramaemC

    Identifcadores

    TiposdeDados

    PalavrasReservadas

    Variveis

    Constantes

    ExpresseseOperadores

    FunesIntrnsecas

  • 8/22/2019 C_pag_13_46

    2/34

    Atribuio

    EntradadeDados

    SadadeDados

    Construindoumprograma

  • 8/22/2019 C_pag_13_46

    3/34

    15

    InTRODuO

    Nesta primeira unidade, voc ser introduzido ao universo da Linguagem de Programao C,

    uma linguagem poderosa e que tem se tornado cada vez mais popular.

    Primeiramente, voc conhecer o histrico da linguagem C, suas caractersticas, pontos fortes

    e fracos e compiladores disponveis para essa linguagem. Estudar os conceitos bsicosrelacionados programao que possibilitam entender como um cdigo-fonte convertido

    em um programa executvel. Alm disso, ter contato com a interface do compilador que

    adotaremos na construo de nossos programas.

    Estudaremos a estrutura bsica de um programa em C e os elementos que a compe. Ao

    construir nossos programas precisamos guardar algumas informaes do problema. Para

    isso, veremos o conceito de variveis e constantes e sua sintaxe em C. Conheceremos os

    tipos de dados disponveis na linguagem, expresses e operadores, funes intrnsecas e

    como utiliz -los em nossos programas. Para obter dados dos usurios, mostrar mensagens e

    resultados de processamento estudaremos as funes relacionadas entrada de dados, que

    nos permitem interagir como usurio; comando de atribuio que possibilita atribuir valor s

    variveis; e funes de sada de dados que permitem o envio de mensagens e exibio dos

    resultados do processamento.

    Ao final desta unidade, voc ter adquirido conhecimento sobre a estrutura de um programa,

    variveis, constantes, palavras reservadas da linguagem C, expresses e operadores, funes

    intrnsecas, comando de atribuio, funo de entrada de dados e funo de sada de dados.

    Com esses conceitos voc saber construir os primeiros programas em C. Vamos l?

  • 8/22/2019 C_pag_13_46

    4/34

    16

    LInGuAGEM C

    A linguagem C foi concebida e implementada, inicialmente, para o sistema operacional UNIX, na

    dcada de 70 por Dennis Ritchie nos Laboratrios Bell da companhia AT & T (KERNINGHAN;

    RITCHIE, 1988).

    C uma linguagem de programao de propsito geral, com uma sintaxe muito compacta e

    que permite a combinao de operadores de diferentes tipos. Alm disso, no est vinculada

    a um hardware especfico ou qualquer outro sistema. De modo que fcil escrever programas

    que sero executados sem mudanas em qualquer mquina que suporta C (KERNINGHAN;

    RITCHIE, 1988).

    Segundo Rocha (2006), a principal caracterstica da linguagem C que ela combina as

    vantagens de uma linguagem de alto nvel com a eficincia da linguagem de montagem

    assembly. Em C possvel realizar operaes aritmticas sobre ponteiros e operaes sobre

    palavras binrias.

    Podemos dizer que esta liberdade oferecida pela linguagem C uma faca de dois gumes, pois

    ao passo que permite com que programadores experientes escrevam cdigos mais compactos

    Fonte:SHuTTE

    RSTOCK.C

    OM

  • 8/22/2019 C_pag_13_46

    5/34

    17

    e eficientes, possibilita que programadores inexperientes realizam construes sem sentido,

    as quais so aceitas como vlidas pelo compilador. Deste modo, ao construir programas

    utilizando C devemos ficar atento s construes da linguagem (ROCHA, 2006).

    Ascencio e Campos (2010) destacam que durante alguns anos, o padro da linguagem C foi

    fornecido com a verso do sistema operacional UNIX. No entanto, com a popularizao dos

    microcomputadores foram criadas vrias implementaes da linguagem C o que ocasionouvrias discrepncias. Em 1983, o ANSI (American National Standards Institute) criou um

    comit para definir um padro que guiasse todas as implementaes da linguagem C.

    Na literatura podemos encontrar diversos compiladores C, sendo os principais: GCC, Dev C++,

    C++ Builder, Turbo C e Visual C#. Em nossa disciplina de Algoritmos e Lgica de Programao

    II adotaremos o Turbo C (Figura 1).

    Figura 1- Interface Turbo C

  • 8/22/2019 C_pag_13_46

    6/34

    18

    COnCEITOS InICIAIS DE PROGRAMAO

    A programao inicia-se com a escrita do programa (cdigo-fonte) e encerra com a gerao

    de um programa executvel. A escrita do programa deve ser realizada em um editor de textos.

    Aps a criao do programa temos que compil-lo. O processo de compilao analisa o cdigo

    e o converte para um cdigo objeto, que a verso em linguagem de mquina do programa. Se

    o programa possui chamada s funes de bibliotecas, o lincador (ligador) rene o programa

    objeto com as bibliotecas referenciadas e gera o cdigo executvel (ROCHA, 2006).

    A Figura 2 ilustra o processo de criao de um programa, desde a criao do cdigo-fonte at

    a gerao de um programa executvel.

    Cdigo-Fonte Compilador

    Bibliotecas

    Programa - objeto

    Ligador

    Programa - executvel

    Figura 2 - Etapas para a criao de um programa

    Fonte: adaptado de Rocha (2006)

    Em nossa disciplina escreveremos nossos programas utilizando o Turbo C (Figura 1). Na Figura

    3 so mostrados os menus em que as operaes compilar, ligar e executar so realizadas.

  • 8/22/2019 C_pag_13_46

    7/34

    19

    Figura 3 - Turbo C

    ESTRuTuRA DE uM PROGRAMA EM C

    Kerninghan e Ritchie (1988) destacam que a nica maneira de aprender uma nova linguagem

    de programao escrevendo programas nela. Com isto, para entender a estrutura de um

    programa em C, vamos construir nosso primeiro programa Hello, world (Quadro 1).

    Quadro 1 - Programa HelloWorld

    # include

    main()

    {

    printf(Hello, World);

    return (0);

    }

  • 8/22/2019 C_pag_13_46

    8/34

    20

    Fique tranquilo!! Vamos analisar o programa acima linha a linha e entender o que cada um

    destes elementos significa.

    Na primeira linha temos a instruo #include , que indica ao compilador que deve

    incluir o contedo do arquivo pr-definido chamado de stdio.h. Este arquivo chamado de

    arquivo de cabealho e contm declaraes de funes para entrada e sada de dados.

    Portanto, no podemos esquecer de inserir esta linha em nossos programas.

    Em seguida, temos a instruo main (), que identifica uma funo denominada main. Os

    programas em C so formados por chamadas de funo. Obrigatoriamente, todo programa

    deve possuir uma funo main, a qual chamada quando o programa executado. Note que

    o contedo da funo delimitado por chaves, de modo anlogo ao incio e fim do algoritmo.

    Isto quer dizer que o contedo entre as chaves ser executado sequencialmente quando o

    programa for executado.

    Dentro das chaves temos duas instrues, a primeira dela printf, que uma funopreviamente definida no arquivo de cabealho stdio.h que imprime na tela a sequncia de

    caracteres Hello, World. A ltima linha, return (0), indica o valor de retorno da funo. No

    caso 0, indica que o programa terminou sem erros. Observe que ao final de cada instruo h

    um ponto e vrgula, isto , todos os comandos em C terminam com ;.

    Agora que vimos cada um dos elementos, voc deve estar se perguntando como executar

    isso. Para visualizar nosso programa precisamos escrever o cdigo no Turbo C, conforme

    Figura 4. Observe que alm do cdigo apresentado no Quadro 1, h outras informaes que

    esto entre /* */. Este comando utilizado para escrever comentrios em nosso cdigo, isto ,

    o compilador desconsidera qualquer coisa que esteja entre estes dois pares de smbolos. Um

    comentrio pode ter mais de uma linha.

    Os comentrios so textos que podem ser inseridos com o objetivo de document-lo. Em

    nossos programas adotaremos como padro a escrita de comentrios. Eles nos auxiliam a

  • 8/22/2019 C_pag_13_46

    9/34

    21

    entender o funcionamento dos programas.

    Figura 4 - Primeiro programa em C Cdigo

    Aps escrever o cdigo do programa temos que compil-lo (ALT + F9). neste momento que

    sero realizadas as verificaes de sintaxe. E para visualizar o resultado do programa basta

    execut-lo. No caso do Turbo C podemos ir ao menu Run ou pressionar as teclas Ctrl + F9.

    Ao executar o cdigo temos como resultado a impresso na tela da cadeia de caracteres Hello,

    World, conforme pode ser visualizado na Figura 5.

  • 8/22/2019 C_pag_13_46

    10/34

    22

    Figura5-PrimeiroprogramaemCSada

    A estrutura geral de um programa em C apresentada no Quadro 2.

    Quadro 2 - Estrutura geral de um programa em C

    main()

    {

    conjunto de instrues;

    return (0);

    }

  • 8/22/2019 C_pag_13_46

    11/34

    23

    IDEnTIFICADORES

    Os identificadores consistem nos nomes que utilizamos para representar variveis, constantes,

    tipos, funes e rtulos do programa. Um identificador uma sequncia de uma ou mais

    letras, dgitos ou sublinhas, que comea com uma letra ou sublinha. Em geral, evita-se iniciar

    um identificador com sublinhas, pois este tipo de notao reservado para o compilador

    (PAPPAS; MURRAY, 1991).

    A linguagem C case sensitive, isto , o compilador considera letras maisculas e minsculascomo caracteres distintos. Os comandos em C s podem ser escritos em minsculos, seno

    o compilador ir interpret-los como variveis. O Quadro 3 apresenta alguns exemplos de

    identificadores vlidos e invlidos.

    Fonte:SHuTTERS

    TOCK.C

    OM

  • 8/22/2019 C_pag_13_46

    12/34

    24

    Quadro 3 - Exemplo de identificadores

    Identificadores vlidos Identificadores invlidos

    A 2

    a b@

    media media idadealtura2 x*y

    media_idade #media

    x36 idade!

    Devemos lembrar que em C o identif icador A no o mesmo que o identificador a, cada um

    um identificador nico.

    TIPOS DE DADOS

    Na linguagem C as informaes podem ser representadas por sete tipos bsicos: char, int,

    float, double, enum, void e pointer(PAPPAS; MURRAY, 1991).

    O tipo char composto por caracteres simples e strings (cadeia de caracters). O tipoint

    so dados numricos que no possuem componentes decimais ou fracionrios. O tipo float,

    valores em ponto flutuante, so nmeros que tm componente decimal ou fracionrio. O

    tipo double so valores em ponto flutuante de preciso dupla, que apresentam alcance mais

    extenso. O tipo enum, dados enumerados, possibilitam os tipos definidos pelo usurio. O tipovoid significa valores que ocupam 0 bits e no possuem valor algum. O tipo pointerrepresenta

    um tipo especial, que no contm informao, mas sim, uma localizao de memria que

    contm o dado verdadeiro.

    A partir dos tipos bsicos podem ser definidos outros tipos de dados utilizando modificadores.

    No Quadro 4 so apresentadas informaes relativas faixa de valores e o tamanho

  • 8/22/2019 C_pag_13_46

    13/34

    25

    aproximado dos tipos de dados. Observe que foram aplicados os modificadores unsigned,

    short e long aos tipos bsicos.

    O modificadorunsigned utilizado para declarar os tipos como sem sinal, duplicando assim

    a gama de valores que pode ser representado. O modificador short reduz a capacidade de

    armazenamento, enquanto o modificadorlong aumenta a capacidade.

    Quadro 4 - Tipos de dados e faixa de valores

    Fonte: Ascencio; Campos (2010)

    Ascencio e Campos (2010) apontam que a faixa de valores e o tamanho podem variar de

    acordo com o compilador. Os valores descritos acima esto em conformidade com o padro

    ANSI.

  • 8/22/2019 C_pag_13_46

    14/34

    26

    PALAvRAS RESERvADAS

    As palavras reservadas, tambm conhecidas como palavras-chave, so identificadores que

    possuem uso especfico para a linguagem C, ou seja, tm significados especiais.

    No Quadro 5 so destacadas as palavras reservadas da linguagem C. Lembre-se: no

    podemos utilizar como identificador uma palavra reservada.

    Quadro 5 - Palavras reservadas da linguagem C

    Fonte: Pappas; Murray (1991)

  • 8/22/2019 C_pag_13_46

    15/34

    27

    vARIvEIS

    Em nossos programas precisamos armazenar algumas informaes e para isto utilizamos as

    variveis. Uma varivel um espao na memria principal do computador que pode conter

    diferentes valores a cada instante de tempo (LOPES; GARCIA, 2002).

    Na linguagem C as variveis so declaradas aps a especificao de seus tipos. Sendo os

    tipos mais utilizados: int, float e char. Note que em C no existe o tipo de dados boolean, pois

    considera verdadeiro qualquer valor diferente de 0. Alm disso, no h um tipo especial para

    armazenar cadeia de caracteres (strings), sendo utilizado um vetor contendo vrios elementos

    do tipo char(ASCENCIO; CAMPOS, 2010).

    A sintaxe para declarao de variveis dada por:

    identificador;

    No Quadro 6 so apresentados exemplos de declarao de variveis. Atente para o fato de

    que a declarao de variveis seguida de ; . Observe, tambm, que podemos declarar em

    uma mesma linha diversas variveis do mesmo tipo.

    Quadro6-Exemplosdedeclaraodevariveis

  • 8/22/2019 C_pag_13_46

    16/34

    28

    COnSTAnTES

    Uma constante armazena informaes que no variam com o tempo, ou seja, o seu contedo

    um valor fixo. Em C podemos definir constantes por meio da seguinte sintaxe:

    #define valor

    Observe que na definio de constantes no utilizamos o ; no final.

    EXPRESSES E OPERADORES

    As expresses esto diretamente relacionadas ao conceito de frmula matemtica, em que um

    conjunto de variveis e constantes relaciona-se por meio de operadores (LOPES; GARCIA,

    2002).

    As expresses aritmticas so aquelas em que o resultado consiste em um valor numrico.Desta forma, apenas operadores aritmticos e variveis numricas (inteiro e real) podem ser

    utilizadas em expresso desse tipo.

    O Quadro 7 apresenta os operadores aritmticos da linguagem C, destacando suas

    representaes e forma de uso.

    Quadro 7 - Operadores aritmticos

  • 8/22/2019 C_pag_13_46

    17/34

    29

    Em C temos, tambm, os operadores aritmticos de atribuio (Quadro 8) que so utilizados

    para representar de maneira sinttica uma operao aritmtica, seguida de uma operao de

    atribuio (ASCENCIO; CAMPOS, 2010).

    Quadro8-Operadoresmatemticosdeatribuio

    Fonte: adaptado de (ASCENCIO; CAMPOS, 2010)

    As expresses relacionais referem-se comparao entre dois valores de um tipo bsico. Os

    operadores relacionais so destacados no Quadro 9, em que possvel visualizar o operador,

    smbolo associado e forma de uso.

  • 8/22/2019 C_pag_13_46

    18/34

    30

    Quadro 9 - Operadores relacionais

    Fonte: adaptado de (ASCENCIO; CAMPOS, 2010)

    As expresses lgicas so aquelas cujo resultado consiste em um valor lgico verdadeiro oufalso. Neste tipo de expresso podem ser usados os operadores relacionais, os operadores

    lgicos ou expresses matemticas.

    No Quadro 10 so descritos cada um dos operadores lgicos: conjuno, disjuno e negao.

  • 8/22/2019 C_pag_13_46

    19/34

    31

    Quadro 10 - Operadores lgicos

    Fonte:adaptado de (LOPES; GARCIA, 2002)

    Em uma expresso podemos ter mais de um operador. Em situaes que h um nico operador

    a avaliao da expresso realizada de forma direta. Quando h mais de um operador

    necessria a avaliao da expresso passo a passo, ou seja, um operador por vez. No Quadro

    11 apresentado um resumo com os principais operadores da linguagem C, destacando desde

    a precedncia mais alta at a mais baixa, e descreve como cada operador est associado

    (esquerda para direita ou direita para esquerda). Cabe ressaltar, que os operadores entre

    linhas tm a mesma precedncia.

  • 8/22/2019 C_pag_13_46

    20/34

    32

    Quadro11-NveisdePrecednciadeOperador

    Operador Descrio Associa pela Precedncia

    ()

    ++ --

    !

    &

    *

    /

    %

    Incremento/decremento

    +

    -

    =

    ==

    !=

    &&

    Vrgula

    Atribuio

    ||

    ?:

    Expresso de funo

    Negao

    Endereo

    Multiplicao

    Diviso

    Resto

    Adio

    Subtrao

    Menor que

    Menor ou igual

    Maior que

    Maior ou igual

    Igual

    Diferente

    Conjuno (E lgico)

    Disjuno (Ou lgico)

    Condicional

    ,

    =, %=, +=, - =, *=, /=,

    >>=,

  • 8/22/2019 C_pag_13_46

    21/34

    33

    FunES InTRnSECAS

    As funes intrnsecas so frmulas matemticas prontas que podemos utilizar em nossos

    programas. O Quadro 12 apresenta as principais funes da linguagem C, destacando o

    comando associado, um exemplo e o que ela faz.

    Quadro12-FunesintrnsecasdalinguagemC

    Funo Exemplo Objetivo

    ceil

    ceil(x)

    cos cos(x)

    exp exp(x)

    abs abs(x)

    floor floor(x)

    log log(x)

    log10 log10(x)

    modf z=modf(x,&y)

    pow pow(x,y)

    sin sin(x)

    sqrt sqrt(x)

    tan tan(x)

    M_PI M_PI

    Arredonda um nmero real para cima. Por exemplo, cel(2.3) 3.

    Calcula o cosseno de x. O valor de x deve estar em radianos.

    Obtm o logaritmo natural e elevado potncia x.

    Retorna o valor absoluto de x.

    Arredonda um nmero real para baixo. Por exemplo,floor(2.3) 2.

    Retorna o logaritmo natural de x.

    Retorna o logaritmo de base 10 de x.

    Decompe o nmero real armazenado em x em duas partes:y recebe a parte fracionria e z a parte inteira.

    Calcula a potncia de x elevado a y.

    Calcula o seno de x.

    Calcula a raiz quadrada de x.

    Calcula a tangente de x.

    Retorna o valor de

    Fonte: Ascencio; Campos (2010)

    Fonte:SH

    uTTERSTOCK.C

    OM

  • 8/22/2019 C_pag_13_46

    22/34

    34

    ATRIBuIO

    O comando de atribuio usado para conceder valores ou operaes a variveis. O smbolo

    utilizado para a atribuio = (sinal de igualdade). A sintaxe para atribuio dada por:

    identificador = expresso

    O identificador representa a varivel a qual ser atribudo um valor e o termo expresso o

    que ser atribudo, podendo ser uma expresso aritmtica ou lgica. Alguns exemplos do uso

    do comando de atribuio podem ser visualizados no Quadro 13.

    Quadro 13 - Exemplos de atribuio

    Note que na linguagem C os caracteres so representados entre apstrofos () e as cadeias

    de caracteres entre aspas ().

  • 8/22/2019 C_pag_13_46

    23/34

    35

    EnTRADA DE DADOS

    A entrada de dados permite receber os dados digitados pelo usurio. Os dados recebidos so

    armazenados em variveis. Na linguagem C existem diversas funes para entrada de dados,

    algumas delas so cin, gets e scanf(Quadro 14) (ASCENCIO; CAMPOS, 2010).

    Os comandos gets e scanfarmazenam toda a cadeia de caracteres at que seja pressionada

    a tecla ENTER. J o comando cin armazena os caracteres at que seja encontrado um espao

    em branco.

    Quadro 14 - Exemplos de entrada de dados

    Fonte: adaptado de (ASCENCIO; CAMPOS, 2010)

    Fonte:SHuTTERSTOCK.C

    OM

  • 8/22/2019 C_pag_13_46

    24/34

    36

    A funo scanf a mais utilizada, sendo sua sintaxe dada por:

    scanf(expresso de controle, lista de argumentos);

    O argumento expresso de controle deve ser escrito entre aspas e contm os especificadores

    de formato (Quadro 15) que indicam como os dados digitados devem ser armazenados. No

    argumento lista de variveis, as variveis devem ser separadas por vrgulas e cada uma delas

    deve ser precedida pelo operador de endereo (&). As usadas para receber valores por meio

    da funo scanfdevero ser passadas pelos seus endereos. O operador de endereo indica

    o endereo da posio de memria para a varivel (ROCHA, 2006).

    Na leitura de cadeias de caracteres (strings) no se utiliza o operador de endereo (&), pois o

    identificar do vetor j o endereo do primeiro elemento do vetor.

    Quadro 15 - Especificadores de formato

    Cdigo Significado

    %c Leitura de um nico caractere

    %d Leitura de um nmero decimal inteiro.

    %i Leitura de um decimal inteiro.

    %u Leitura de um decimal sem sinal.

    %e Leitura de um nmero em ponto flutuante com sinal opcional.

    %f Leitura de um nmero em ponto flutuante com ponto opcional.

    %g Leitura de um nmero em ponto flutuante com expoente opcional.

    %o Leitura de um nmero em base octal.

    %s Leitura de uma string.

    %x Leitura de um nmero em base hexadecimal.

    %p Leitura de um ponteiro.

    Fonte: adaptado de (ROCHA, 2006)

  • 8/22/2019 C_pag_13_46

    25/34

    37

    Tomemos como exemplo, ler uma varivel que armazena a idade, o uso da funo scanfdeve

    ser realizado do seguinte modo:

    scanf(%d, &idade);

    Para utilizar os comandos de entrada de dados necessrio incluir a biblioteca stdio.h,

    utilizando o comando #include ;

    SADA DE DADOS

    A sada de dados permite mostrar dados aos usurios. Na linguagem C utilizamos a funo

    printfpara exibir resultados do processamento e mensagens. A sintaxe desta funo :

    printf(expresso de controle, lista de argumentos);

    O argumento expresso de controle pode conter mensagens que sero exibidas na tela e osespecificadores de formato que indicam o formato que os argumentos devem ser impressos.

    A lista de argumentos pode conter identificadores de variveis, expresses aritmticas ou

    lgicas e valores constantes.

    Alm dos especificadores de formato podemos utilizar cdigos especiais na sada de dados.

    Esses cdigos so apresentados no Quadro 16.

  • 8/22/2019 C_pag_13_46

    26/34

    38

    Quadro 16 - Cdigos especiais

    Cdigo

    \n Nova linha

    \t Tab

    \b Retrocesso

    \ Aspas

    \\ Contrabarra

    \f Salta pgina de formulrio

    \0 Nulo

    Significado

    Fonte: adaptado de (PAPPAS; MURRAY, 1991)

    O programa (Figura 6) apresenta alguns exemplos de uso da funo printf. Para facilitar o

    entendimento verifique o que exibido em vdeo para cada uma das instrues.

    Figura 6 - Entendendo a funo printf Cdigo

  • 8/22/2019 C_pag_13_46

    27/34

    39

    A sada obtida com a execuo do programa da Figura 6 apresentada na Figura 7. Como

    podemos observar as mensagens foram impressas em tela sem quebra de linha. Para imprimir

    cada mensagem em uma linha devemos utilizar o comando especial (\n). Este cdigo pode ser

    visualizado na Figura 8.

    Figura7-EntendendoafunoprintfSada

    Ao comparar os cdigos da Figura 6 e Figura 8 podemos observar que foi inserido o cdigo

    especial \n na funo printf. Esse cdigo responsvel por posicionar o cursor em uma nova

    linha. Com isto, temos que a sada a impresso de cada mensagem em uma linha, como

    pode ser visualizado na Figura 9.

  • 8/22/2019 C_pag_13_46

    28/34

    40

    Figura 8 - Entendendo a funo printf - Cdigo

    Figura9-Entendendoafunoprintf-Sada

  • 8/22/2019 C_pag_13_46

    29/34

    41

    Se voc ficou com dvidas quanto ao funcionamento do printf, fique tranquilo!!! Veremos mais

    casos de aplicao desta funo.

    COnSTRuInDO uM PROGRAMA

    Vamos elaborar um programa que leia nome, idade e altura de uma pessoa e exiba nome,

    idade, altura e ano de nascimento da pessoa. Para facilitar o entendimento sobre o problema

    vamos estrutur-lo em trs partes: Entrada Processamento e Sada.

    Na entrada de dados temos que obter os dados de nome, idade e altura. Cada um desses

    dados precisa ser armazenado em uma varivel e na leitura deles utilizaremos a funo scanf.

    Como processamento temos que calcular o ano em que a pessoa nasceu que ser dado pelo

    ano atual menos a idade da pessoa. E como sada devemos enviar para a tela o nome, idade,

    altura e ano de nascimento. Para mostrar essas informaes no vdeo utilizaremos a funo

    printf.

    Fonte:SHuTTERSTOCK.C

    OM

  • 8/22/2019 C_pag_13_46

    30/34

    42

    Agora que entendemos o problema podemos partir para a construo do programa. Voc se

    recorda da estrutura bsica de um programa em C? Nosso programa deve ter uma funo

    main e as instrues tm que estar ente os colchetes.

    Os valores obtidos na entrada de dados precisam ser armazenados em variveis. Qual o

    tipo de cada varivel? O nome uma cadeia de caracteres, deste modo precisamos de uma

    varivel do tipo char. A varivel altura do tipo float e idade do tipo int.

    O Quadro 17 apresenta o cdigo para o programa acima descrito.

  • 8/22/2019 C_pag_13_46

    31/34

    43

    Quadro 17 - Programa em C

    #include /* insere o conteudo do arquivo stdio.h */

    main()

    { /* declaracao das variaveis */

    int idade, ano;float altura;

    char nome[30];

    /*entrada de dados */

    printf (Digite o seu nome: ); /*mensagem ao usuario */

    scanf (%s, nome); /* leitura do nome */

    printf (Digite a idade:); /*mensagem ao usuario */

    scanf (%d, &idade); /* leitura da idade */

    printf (Digite a altura: );/*mensagem ao usuario */

    scanf (%f, &altura); /* leitura da altura*/

    /* processamento */

    ano = 2012 - idade; /*calculo do ano de nascimento */

    /*saida de dados */

    printf ( \nO nome e : %s, nome);

    printf ( \nA altura e : %f, altura);

    printf ( \nA idade e : %d, idade);

    printf (\nO ano de nascimento e : %d , ano);

    return (0);

    }

  • 8/22/2019 C_pag_13_46

    32/34

    44

    Os resultados da execuo do programa podem ser visualizados na Figura 10. Observe

    que inicialmente os dados foram obtidos do usurio e, em seguida, apresentados. Na sada

    de dados as variveis do tipo float podem ser formatadas em relao ao nmero de casas

    decimais a ser apresentado. Ao imprimir uma varivel do tipo float utilizando a funo printf

    o padro completar o nmero com zeros direita, at que fique com seis casas decimais

    (Figura 8).

    Figura10-ProgramaemC-Sada

    No entanto, podemos formatar de um modo diferente usando junto com o especificador de

    formato o nmero de casas decimais que desejamos. O Quadro 18 apresenta o mesmoprograma com formatao para a impresso da varivel altura com 2 casas decimais. Na

    funo printfao utilizar o especificador de formato inserimos um ponto e o nmero de casas

    decimais desejado.

  • 8/22/2019 C_pag_13_46

    33/34

    45

    Quadro 18 - Programa em C

    #include /* insere o conteudo do arquivo stdio.h */

    main()

    { /* declaracao das variaveis */

    int idade, ano;float altura;

    char nome[30];

    /*entrada de dados */

    printf (Digite o seu nome: ); /*mensagem ao usuario */

    scanf (%s, nome); /* leitura do nome */

    printf (Digite a idade:); /*mensagem ao usuario */

    scanf (%d, &idade); /* leitura da idade */

    printf (Digite a altura: );/*mensagem ao usuario */

    scanf (%f, &altura); /* leitura da altura*/

    /* processamento */

    ano = 2012 - idade; /*calculo do ano de nascimento */

    /*saida de dados */

    printf ( \nO nome e : %s, nome);

    printf ( \nA altura e : %.2f, altura);

    printf ( \nA idade e : %d, idade);

    printf (\nO ano de nascimento e : %d , ano);

    return (0);

    }

  • 8/22/2019 C_pag_13_46

    34/34

    46

    A Figura 11 apresenta o resultado obtido com a formatao da sada para a varivel real altura.

    Figura11-ProgramaemC-SadaFormatada

    COnSIDERAES FInAIS

    Nesta unidade, voc deu os primeiros passos no aprendizado sobre a Linguagem de

    Programao C, conhecendo as caractersticas, pontos fortes e fracos, e como o cdigo que

    escrevemos se torna um programa executvel.

    Conhecemos a estrutura bsica de um programa em C, que possui uma funo main, que

    chamado quando o programa executado. Vimos que o contedo da funo delimitado por

    chaves e o contedo entre elas executado de modo sequencial. Alm disso, estudamos queao final das instrues devemos inserir a funo return (0), que o programa terminou sem

    erros e que todos os comandos terminam com ponto e vrgula.

    Aprendemos como documentar nossos cdigos inserindo comentrios os quais so escritos

    entre /* */ e podem ter mais de uma linha. Entendemos as regra para a nomeao de

    identificadores.

    Estudamos os sete tipos bsicos de dados (char, int, float, double, enum, void e pointer),

    operadores e funes intrnsecas disponveis na linguagem C. Em relao aos tipos de dadosvimos que eles podem gerar outros tipos a partir da aplicao dos modificadores unsigned,

    short e long.