You are on page 1of 7

Universidade Federal Rural de Pernambuco - UFRPE Departamento de Estatstica e Informtica - DEINFO DISCIPLINA: Paradigmas de Programao PROFESSOR: Glucya Carreiro

Boechat

Prtica - Linguagem C Exerccios - Desenvolvendo um pequeno projeto


Siga as instrues abaixo: 1) Baixe, instale e entre no ambiente DevC++ (http://sourceforge.net/project/downloading.php?groupname=devcpp&filename=devcpp-4.9.9.2_setup.exe&use_mirror=ufpr) 2) V em Arquivo -> Novo -> Projeto. Escolha a opo Console Application 3) Escolha o caminho e salve o projeto com o nome primeiro. Aparecer automaticamente no editor um arquivo (main.cpp) onde podemos encontrar a funo main.

4) Altere o arquivo main.cpp deixando o cdigo como abaixo e salve o arquivo:


#include <stdio.h> void impsaudacao() { puts("Boa Tarde"); } int main() { printf("Meu primeiro projeto em C\n"); impsaudacao(); getchar(); }

5) V em Executar -> Compilar (ou pressione Ctrl+F9). 6) Escolha a opo Executar -> Compilar (ou pressione Ctrl+F10) e execute o programa.

7) Alterne o arquivo main.cpp e declare uma varivel local funo main chamada NomeUsr atravs da seguinte linha de cdigo:
char NomeUsr[21];

8) Pea para o usurio informar o seu nome, atravs das seguintes linhas:
printf("Informe o seu Nome: "); gets(NomeUsr);

9) Alterne a funo impsaudacao() e modifique a linha puts("Boa Tarde") para:


printf("Boa Tarde %s\n", NomeUsr);

10) Refaa o projeto (Compilar). Verifique a janela de mensagens. Qual o motivo do erro de compilao e como consert-lo? 11) Conserte o erro e execute a aplicao! 12) Crie um segundo projeto com o nome segundo. 13) Altere o arquivo main.cpp deixando-o com a seguinte implementao:
#include <stdio.h> #include <stdlib.h> int main() { int num1, num2; int getnum(); puts("Digite 2 numeros:"); printf("Numero 1: "); num1 = getnum(); pr intf("Numero 2: "); num2 = getnum(); printf("O produto dos dois numeros vale: %d\n", num1*num2); return (0); } int getnum() { char s[80]; gets(s); /* Le string s */ return (atoi(s)); /* Converte string s para inteiro e devolve o valor convertido*/ }

14) Compile e execute o programa. Que falhas voc visualiza neste programa. Comente.

Programa para gerar tabela ASCII 15) Crie um terceiro projeto. importante a criao de diversos projetos pois um projeto (aplicao) no pode conter mais de uma funo main( ). 16) Digite main.cpp as seguintes linhas de cdigo em C:
#include <stdio.h> main() { int i; int linha = 5; puts("Tabela ASCII\n"); puts("Decimal Hexa Caracter"); for (i = 0; i < 256; i = i + 1) { printf("%5.3d %4.2X %c\n", i, i, i); linha = linha + 1; if (linha == 25) { if (getchar() == 's') break; linha = 1; } } return (0); }

17) Salve o arquivo, compile e teste o programa.

Alterao do programa de tabela ASCII 18) Altere o cdigo do programa de gerao da tabela ASCII para permitir que o usurio estabelea o incio e o final da tabela. Dica: use a funo scanf( ) para ler estes valores. Teste e execute o programa.

4. Exerccios Complementares
1) Monte um programa em C para executar cada um dos comandos abaixo. Veja a sada de cada comando e explique porque ela teve este formato. a) printf("|%10s|\n", "string"); b) printf("|%-10s|\n", "string"); c) printf("|%5d|\n", 100); d) printf("|%-5d|\n", 200); e) printf("|%5.2f|\n", 3.141592); f) printf("|%-10.3s|\n", "string"); g) printf("|%8d|\n", 40000); h) printf("|%8ld|\n", 40000); i) printf("|%10.5d|\n", 102); j) printf("|%.5d|\n", 102); k) printf("|%010d|\n", 102); l) printf("|%010.5d|\n", 102); m) printf("|%5.2Lf|\n", 314.1592); n) printf("|%5.2Le|\n", 314.1592L); 2) Descreva como poderia ser feito um programa para montar uma tabela ASCII para o usurio. 3) Monte um programa com o trecho de cdigo abaixo, veja sua sada e explique o seu funcionamento.
char ch; ch = getchar(); /* Digite 123<Enter> */ putchar(ch); putchar(getchar()); printf("%c %d\n", getchar()); printf("%d\n", getchar()); putchar(getchar());

4) Escreva um programa em C que leia os coeficientes de uma equao de 2 Grau, calcule e mostre suas razes, caso existam.

5) Informe o resultado finais das variveis do seguinte cdigo #include <stdio.h> int x[10] = {2, 4, 1, 8, 6, 7, 3, 9, 2, 5}; permutar(a,b) int *a,*b; { int auxiliar; auxiliar *a *b } main() { int i, j, aux, m, nm1, n = 10; nm1 = n - 1; for (i = 0; i < nm1; i++) { m = i; for (j = i + 1; j < n; j++) if (x[j] < x[m]) m = j; permutar(&x[i], &x[m]); } for (i = 0; i < n; i++) printf(" x[%d] = %d", i, x[i]); } 6) Coloque a funo MDC( ) com recursividade #include <stdio.h> int mdc(m, n) int m, n; { int r; do = *a; = *b; = auxiliar;

{ r = m % n; m = n; n = r; } while(r != 0); return(m); } main() { int m = 120, n = 9, mdc(m,n); printf("\n o MDC de %d e %d e ", m, m, mdc(m, n)); } 7) Informe o valor das variveis aps a execuo dos seguintes cdigos. void troca(); main() { int x=10,y=20; troca(&x,&y); printf("x=%d y=%d\n",x,y); } void troca(a,b) int *a,*b; { int temp; temp=*a; *a=*b; *b=temp; } } } void troca(a,b) int a, b; { int temp; temp = a; a = b; b= temp; void troca(); main() { int x=10,y=20; troca(x,y); printf("x=%d y=%d\n",x,y);

8) Escreva uma funo para trocar o contedo de duas strings informadas pelo usurio. Utilize a funo strcpy() 9) Fazer um programa para receber valores inteiros X, Y e Z do usurio e determinar se estes valores podem formar os lados de um tringulo. Em caso afirmativo, informar se o tringulo eqiltero, issceles ou escaleno. 10) Escreva uma funo para comparar duas strings informadas pelo usurio. 11) Fazer um programa no qual o usurio vai entrando sucessivamente com valores positivos. Quando o usurio entrar com um valor negativo o programa pra de pedir valores e calcula a mdia dos valores j fornecidos. 12) Faa um programa que receba do usurio o nmero de lados e o tamanho dos lados de um polgono regular e imprima o valor da rea do polgono. O programa deve utilizar uma estrutura switch-case para decidir que frmula de clculo utilizar, de acordo com o nmero de lados do polgono. Se o nmero de lados for diferente de 3, 4 ou 6 o programa deve informar: no sei calcular a rea. reas:
a. Tringulo: A = L*L*1.73/4 b. Quadrado: A = L*L

c. Hexgono: A = 6*L*L*1.73/4;

You might also like