0% acharam este documento útil (0 voto)
16 visualizações7 páginas

PP Lista3 2va

O documento apresenta um conjunto de exercícios práticos para a disciplina de Paradigmas de Programação, utilizando a linguagem C. Os exercícios incluem a criação de projetos no DevC++, implementação de funções, manipulação de variáveis, e desenvolvimento de programas para gerar tabelas ASCII e calcular áreas de polígonos. Além disso, são propostos exercícios complementares que envolvem conceitos como troca de valores, comparação de strings e cálculo de médias.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
16 visualizações7 páginas

PP Lista3 2va

O documento apresenta um conjunto de exercícios práticos para a disciplina de Paradigmas de Programação, utilizando a linguagem C. Os exercícios incluem a criação de projetos no DevC++, implementação de funções, manipulação de variáveis, e desenvolvimento de programas para gerar tabelas ASCII e calcular áreas de polígonos. Além disso, são propostos exercícios complementares que envolvem conceitos como troca de valores, comparação de strings e cálculo de médias.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

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++
([Link]
cpp&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 ([Link]) onde podemos encontrar a função
main.

4) Altere o arquivo [Link] 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 [Link] 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 [Link] 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 [Link] 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;

Você também pode gostar