Professional Documents
Culture Documents
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]
Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)
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.
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)
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)
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)
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)
ANEXO Programas
A. helloworld.c
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)
Centro Universitrio Norte do Esprito Santo - Rua Humberto de Almeida Franklin, 257 Bairro Universitrio, CEP 29.933-480, So Mateus - ES (sede provisria)
#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)
#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)