You are on page 1of 9

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO

1 Roteiro de Laboratrio
Tpicos abordados 1. Ambiente de programao Code::blocks. 1.1 Meu primeiro programa: Helloworld.c Compilao e execuo Viso geral do cdigo-fonte 2. Aspectos gerais da linguagem C 1.1 Variveis e expresses Problema resolvido: [PR 1] Problemas propostos: [PP 1], [PP 2] 1.2 Entrada e sada Problema resolvido: [PR 2] Problemas propostos: [PP 3], [PP 4] 1.3 Funes Problema resolvido: [PR 3] Problemas propostos: [PP 5], [PP 6]

1. AMBIENTE DE PROGRAMAO CODE::BLOCKS


O Code::Blocks um IDE (ambiente de desenvolvimento integrado integrated development environment). Esse IDE facilita a tarefa do programador, pois integra editor de textos a um compilador da linguagem C (gcc GNU C Compiler). Para instalao , visite o site http://www.codeblocks.org/downloads/26 e escolha a verso de acordo com sua plataforma de trabalho. Para usurios Windows, sugerimos a instalao de codeblocks10.05mingw-setup.exe.
1

Meu primeiro programa


1. Localize e execute o Code::blocks. 2. Crie um arquivo vazio atravs dos seguintes passos: File New Empty file 3. Copie e cole o programa helloworld.c para a rea de trabalho do Code::blocks (ANEXOS):
1

Acesse o tutorial em http://www.youtube.com/watch?v=uLtCjyFVk8I&feature=related (Acesso: 16/03/2012) para mais detalhes.

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO


4. Salve o programa criado: File Save 5. Quando requerido o nome do arquivo, escolha helloworld.c.

Compilao e execuo
A compilao de um programa pode ser entendida de maneira simplificada como a transformao (traduo) do cdigo-fonte (i.e., programa em C) para um cdigo binrio de mquina (cdigo binrio), conforme ilustrado abaixo.

Cdigo-fonte
Arquivo ".c"

Compilador
GNU C Compiler

Cdigo de Mquina
001001001...

1. Compile o programa implementado em Helloworld.c fazendo: Build->Build 2. Execute o programa: Build->Run Dica: Para facilitar o processo, voc pode utilizar o atalho F9 para compilar e executar o programa na sequncia.

Viso geral do cdigo


Esse simples programa apenas exibe a mensagem Helloworld na tela. A seguir, reapresentamos o cdigo-fonte para uma rpida anlise: 1. #include <stdio.h> 2. 3. 4. 5. 6. 7. /* Um Primeiro Programa */ int main () { printf ("Helloworld\n"); return(0); }

Na linha 1, ns indicamos para o compilador que utilizaremos a biblioteca stdio.h (standar input/output). Dentre os vrios recursos (funes) que a biblioteca oferece, um deles prover funes de entrada (leitura de dados) e sada (exibio de resultados). A linha 2 contm um comentrio. A funo bsica desse recurso criar explicaes para melhor entendimento do programa. Tudo o que est escrito entre /* e */ desconsiderado pelo

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO


compilador, ou seja, o programa ter o mesmo efeito se essa linha no for includa. Tambm existe a forma de comentrios multilinha, conforme exemplo abaixo: /* Linha 1 do comentrio. Linha 2... Linha n... */ Todo programa em C apresenta uma funo principal chamada main que o ponto de partida para execuo de programas escritos nessa linguagem. As aes definidas por tal funo esto compreendidas entre as linhas 4 e 7. Essas linhas apresentam, respectivamente, { e }, smbolos que definem um bloco de comandos. Blocos podem estar vinculados a uma funo ou outro comando, conforme veremos adiante no curso. No exemplo em questo, temos na linha 5 a funo printf que pertence referida biblioteca stdio.h. Esta funo responsvel por exibir a mensagem (string: sequncia de caracteres) indicada entre aspas () na tela. Note a presena do caractere especial \n que tem como funo saltar uma linha ao exibir algo na tela (experimente retirar esse caractere e executar o programa para observar a diferena). Por fim, temos a linha 6 que apresenta o comando return(0), comando associado funo main. O objetivo desse comando retornar o valor 0, o que no caso indica que o programa executou sem falhas (erros, excees).

2. ASPECTOS GERAIS DA LINGUAGEM C


Variveis e expresses
Uma varivel um local da memria com as seguintes caractersticas: Armazena um dado; Possui um nome associado (identificador); Possui um tamanho definido (# de bytes); Est associada a um tipo: inteiro (int), real (float e double), caractere (char), etc.; Seu tipo est associado a um cdigo utilizado para entrada e sada (E/S): Exemplo: %d (int), %f (float) e %c (char). Sua existncia deve ser indicada ao compilador atravs de uma declarao que segue o formato <tipo> <nome>. Exemplos: int n_dias, float temperatura e char letra.

Problemas
[PR 1] Escreva um programa em C que converta o valor de uma temperatura em graus Fahrenheit para graus Celsius. 1. Copie e cole o programa celsius2fahrenheit.c para a rea de trabalho do Code::blocks (ANEXOS).

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO


2. Compile e execute o programa: F9 [PP 1] Escreva um programa C com variveis inteiras x e y que tem por objetivo exibir na tela o a soma entre seus valores. (Resposta sugerida em ANEXOS). [PP 2] Elabore um programa C que converta o certo nmero de dias para anos. (Resposta sugerida em ANEXOS).

Entrada e sada (E/S)


No primeiro programa vimos a funo printf que imprime (escreve) certo contedo na tela, ou seja, realiza sada de dados. De maneira anloga, existe a funo scanf para ler dados digitados pelo usurio e guardar em variveis para posterior uso. Vejamos um exemplo da funo scanf: 1. Copie e cole o programa input_output.c para a rea de trabalho do Code::blocks (ANEXOS). 2. Compile e execute o programa.

Um exemplo mais elaborado de sada (printf) segue-se abaixo: 3. Copie e cole o programa output.c para a rea de trabalho do Code::blocks (ANEXOS). 4. Compile e execute o programa.

Problemas
[PR 2] Escreva um programa que leia dois valores reais x e y, e mostre o valor da expresso . Dica: utilize funo sqrt da biblioteca math.h. 1. Copie e cole o programa raiz.c para a rea de trabalho do Code::blocks (ANEXOS). 2. Compile e execute o programa. [PP 3] Escreva um programa que receba como entrada dois valores e mostre o resultado da soma, subtrao e diviso entre eles. Cada resultado deve ser mostrado numa linha separada. (Resposta sugerida em ANEXOS). [PP 4] Escreva um programa que leia duas variveis inteiras x e y, efetue a troca dos seus valores entre si e mostre na tela o novo valor de ambas as variveis. (Resposta sugerida em ANEXOS).

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO

Funes
[PR 3] Escreva uma funo que receba os coeficientes de uma equao do segundo grau (a, b, c) e calcule 4 . Implemente tambm a funo main lendo os coeficientes e mostrado o resultado da funo. Obs.: utilize a funo pow da biblioteca math.h. 1. Copie e cole o programa delta.c para a rea de trabalho do Code::blocks (ANEXOS). 2. Compile e execute o programa. [PP 5] Escreva um programa cuja funo main chame uma funo de assinatura void imprime_msg(). Essa ltima exibe uma mensagem qualquer na tela. (Resposta sugerida em ANEXOS). [PP 6] Escreva uma funo calcula_s que retorne , onde x e y so parmetros da funo. Os valores passados para x e y devem ser lidos na funo main e o resultado da chamada de calcula_s deve ser impresso na tela. (Resposta sugerida em ANEXOS).

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO

ANEXO Programas
A. helloworld.c

#include <stdio.h> /* Um Primeiro Programa */ int main () { printf ("Helloworld\n"); return(0); }

B. celsius2fahrenheit.c #include <stdio.h> int main () { float temp_celsius; float temp_fahrenheit; temp_fahrenheit = 150.0; temp_celsius = 5.0/9.0*(temp_fahrenheit - 32); printf ("%f graus F corresponde a %f graus C.\n", temp_fahrenheit, temp_celsius); return(0); } C. somaxy.c #include <stdio.h> int main () { int x; int y; x = 10; y = 5; printf ("x + y = %d\n",(x+y)); return(0); }

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO


D. diasanos.c #include <stdio.h> int main () { int dias; int anos; int sobraDias; dias = 1867; anos = dias / 365; sobraDias = dias - (anos * 365); printf ("%d sobraDias); return(0); } E. input_output.c #include <stdio.h> int main() { int x; scanf("%d", &x); printf("%d", x); return(0); } F. output.c #include <stdio.h> int main() { printf ("%f\n", 40.345); printf ("Um caractere %c e um inteiro %d\n",'D', 120); printf ("%s e um exemplo\n", "Este"); printf ("Teste %% %%\n"); printf ("%s%d%%\n","Juros de ",10); return(0); } G. raiz.c #include <stdio.h> #include <math.h> dias equivalem a %d anos e %d dias\n",dias, anos,

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO


int main() { float x, y, r; // Leitura dos valores. scanf("%f %f", &x, &y); r = sqrt(x*x - y*y); printf("raiz = %f\n", r); return (0); } H. delta.c #include <stdio.h> #include <math.h> float calcula_delta(float a, float b, float c) { return pow(b, 2) - 4*a*c; } int main() { float a, b, c; float delta; printf("Digite os valores de a, b e c\n"); scanf("%f %f %f", &a, &b, &c); delta = calcula_delta(a, b, c); printf("delta = %f\n", delta); return(0); } I. msg.c

#include <stdio.h> void imprime_msg() { printf("Mensagem exibida pela funcao imprime_msg()\n"); } int main() { imprime_msg(); return(0); }

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

UNIVERSIDADE FEDERAL DO ESPRITO SANTO CENTRO UNIVERSITRIO NORTE DO ESPRITO SANTO


J. calcula_s.c

#include <stdio.h> #include <math.h> float calcula_s(float x, float y) { return ( x - sqrt(x*y) + pow(y, 2) ); } int main() { float x, y; float s; printf("Digite os valores de x e y\n"); scanf("%f %f", &x, &y); s = calcula_s(x, y); printf("\nS = %f\n", s); return(0); }

Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)

You might also like