Universidade Federal Rural de Pernambuco - UFRPE
Departamento de Estatística e Informática - DEINFO
DISCIPLINA: Paradigmas de Programação
PROFESSOR: Gláucya Carreiro Boechat
Prática - Linguagem C
Exercícios - Desenvolvendo um pequeno projeto
Siga as instruções 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 opção “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 função
main.
4) Altere o arquivo main.cpp deixando o código 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 opção Executar -> Compilar (ou pressione Ctrl+F10) e execute o
programa.
7) Alterne o arquivo main.cpp e declare uma variável local à função main chamada
NomeUsr através da seguinte linha de código:
char NomeUsr[21];
8) Peça para o usuário informar o seu nome, através das seguintes linhas:
printf("Informe o seu Nome: ");
gets(NomeUsr);
9) Alterne a função impsaudacao() e modifique a linha puts("Boa Tarde") para:
printf("Boa Tarde %s\n", NomeUsr);
10) Refaça o projeto (Compilar). Verifique a janela de mensagens. Qual o motivo do
erro de compilação e como consertá-lo?
11) Conserte o erro e execute a aplicação!
12) Crie um segundo projeto com o nome “segundo”.
13) Altere o arquivo main.cpp deixando-o com a seguinte implementação:
#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 criação de diversos projetos pois um
projeto (aplicação) não pode conter mais de uma função main( ).
16) Digite main.cpp as seguintes linhas de código 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.
Alteração do programa de tabela ASCII
18) Altere o código do programa de geração da tabela ASCII para permitir que o
usuário estabeleça o início e o final da tabela. Dica: use a função scanf( ) para ler
estes valores.
Teste e execute o programa.
4. Exercícios Complementares
1) Monte um programa em C para executar cada um dos comandos abaixo. Veja a
saída 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
usuário.
3) Monte um programa com o trecho de código abaixo, veja sua saída 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 equação de 2º Grau,
calcule e mostre suas raízes, caso existam.
5) Informe o resultado finais das variáveis do seguinte código
#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;
*a
= *b;
*b
= auxiliar;
}
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 função MDC( ) com recursividade
#include <stdio.h>
int mdc(m, n)
int m, n;
{
int r;
do
{
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 variáveis após a execução dos seguintes códigos.
void troca();
void troca();
main()
main()
{
{
int x=10,y=20;
int x=10,y=20;
troca(&x,&y);
troca(x,y);
printf("x=%d y=%d\n",x,y);
printf("x=%d y=%d\n",x,y);
}
}
void troca(a,b)
void troca(a,b)
int *a,*b;
int a, b;
{
{
}
int temp;
int temp;
temp=*a;
temp = a;
*a=*b;
a = b;
*b=temp;
b= temp;
}
8) Escreva uma função para trocar o conteúdo de duas strings informadas pelo usuário.
Utilize a função strcpy()
9) Fazer um programa para receber valores inteiros X, Y e Z do usuário e determinar
se estes valores podem formar os lados de um triângulo. Em caso afirmativo,
informar se o triângulo é eqüilátero, isósceles ou escaleno.
10)
Escreva uma função para comparar duas strings informadas pelo usuário.
11) Fazer um programa no qual o usuário vai entrando sucessivamente com valores
positivos. Quando o usuário entrar com um valor negativo o programa pára de pedir
valores e calcula a média dos valores já fornecidos.
12) Faça um programa que receba do usuário o número de lados e o tamanho dos
lados de um polígono regular e imprima o valor da área do polígono. O programa
deve utilizar uma estrutura switch-case para decidir que fórmula de cálculo utilizar,
de acordo com o número de lados do polígono. Se o número de lados for diferente
de 3, 4 ou 6 o programa deve informar: “não sei calcular a área”. Áreas:
a. Triângulo: A = L*L*1.73/4
b. Quadrado: A = L*L
c. Hexágono: A = 6*L*L*1.73/4;
Download

Prática - Linguagem C Exercícios