Buscar

Lista de Exercícios - Introdução a Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 	
  
UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO 
PRÓ-REITORIA DE ENSINO DE GRADUAÇÃO 
	
  	
  	
  	
  	
  	
  	
  	
  	
  Rua	
  Dom	
  Manoel	
  de	
  Medeiros,	
  s/n	
  –	
  Dois	
  Irmãos	
  52171-­‐900	
  Recife-­‐PE	
  
Fone:	
  0xx-­‐81-­‐332060-­‐40	
  proreitor@preg.ufrpe.br	
  
 
	
  
Lista	
  de	
  Desafios	
  
 
	
  
	
   
	
  
Este documento apresenta uma série de desafios para serem implementados como exercícios 
em disciplinas de linguagem de programação. Ao mesmo tempo que constitui um exercício de 
programação, serve para preparar os alunos para olimpíadas ou maratonas de programação, cujos 
enunciados são apresentados de forma idêntica aos desafios deste documento. São apresentados dez 
desafios de nível fácil. 
	
  
Palavras-chaves: Programação; Lista de Exercícios. 
	
  
	
  
ABSTRACT 
	
  
This document presents a set of problems to be implemented as exercises in programming 
language disciplines. At the same time that it constitutes an exercise of programming, it serves to 
prepare the students for programming contests, whose definitions are presented in the same manner 
of the problems of this document. Ten easy level problems are presented. 
	
  
Key-words: Programming; Exercise List. 
	
  
	
  
1 FATORIAL 
	
  
O fatorial de um número x é indicado por x! e corresponde ao produto de todos os números 
naturais de 1 até x. Por definição, assume-se que 0! e 1! sejam ambos iguais a 1. Na Figura 1 é 
possível ver alguns exemplos de cálculo de fatorial. A definição de fatorial pode também ser 
apresentada usando o conceito de recursividade. Ou seja, o fatorial de x pode ser definido como x 
multiplicado pelo fatorial de x-1: x! = x.(x-1)!. 
	
  
0! = 1 
1! = 1 
2! = 1.2 
3! = 1.2.3 
4! = 1.2.3.4 
... 
10! = 1.2.3.4.5.6.7.8.9.10 
... 
x! = 1.2.3.4.5. ... .(x-2).(x-1).x 
Figura 1 - Exemplos de cálculo de fatorial 
	
  
	
  
1.1 Desafio 
	
  
Seu desafio é escrever um programa em C que lê um número inteiro N correspondente ao 
2 	
  
número de valores inteiros que serão fornecidos e, a seguir, calcula o fatorial de cada um destes 
inteiros. 
	
  
1.2 Entrada 
	
  
O primeiro valor que deve ser lido da entrada é o número de valores inteiros (N) para os 
quais se deseja calcular o fatorial. A seguir são fornecidos N valores inteiros. Cada valor inteiro Xi 
(1 i N ) varia de 0 até 20 (inclusive). A Figura 2 apresenta um exemplo de entrada. 
	
  
4 
0 1 3 5 
	
  
	
  
	
  
Figura 2 – Exemplo de entrada 
	
  
	
  
1.3 Saída 
	
  
A saída corresponde aos fatoriais dos N números inteiros lidos na entrada, impressos cada 
um em uma linha como um número real com seis casas decimais. A saída esperada para a entrada 
da Figura 2 é mostrada na Figura 3. 
	
  
1.000000 
1.000000 
6.000000 
120.000000 
	
  
	
  
	
  
	
  
	
  
Figura 3 – Saída esperada para o exemplo de entrada 
	
  
	
  
1.4 Restrições 
	
  
Nas entradas fornecidas: 
N é um inteiro sem sinal e pode variar de 0 a 1.000 (inclusive); 
Xi (1 i N ) é um inteiro sem sinal e pode variar de 0 a 20 (inclusive). 
	
  
	
  
2 IMPRESSÃO EM BINÁRIO 
	
  
O sistema de numeração binário, que representa valores usando apenas os dígitos 0 e 1, tem 
um papel de destaque no processamento de dados pelo computador. Isto se dá basicamente em 
função de que, no nível mais baixo e mais interno de um computador, toda a informação é formada 
por uma seqüência de bits que podem assumir apenas dois valores, por conveniência, representados 
por 0 e 1. 
	
  
O sistema binário é, portanto, composto de dois símbolos ou dígitos: 0 e 1. Sua base é 2, o 
que significa que as várias posições que um dígito pode assumir têm pesos que podem ser expressos 
em potências de 2. Por exemplo, os números a seguir em binário representam as quantidades 
definidas pelas respectivas expressões: 
1100 = 1.23 + 1.22 + 0.21 + 0.20 = 12 
10100011 = 1.27 + 0.26 + 1.25 + 0.24 + 0.23 + 0.22 + 1.21 + 1.20 = 163 
	
  
2.1 Desafio 
	
  
Seu desafio é escrever um programa que lê um número N, correspondente ao número de 
entradas que serão fornecidas. E, para cada entrada, que corresponde a um número inteiro, o seu 
programa deve imprimir a sua representação em notação binária de 16 bits. 
3 	
  
2.2 Entrada 
	
  
O primeiro valor que deve ser lido da entrada é o número de valores inteiros (N) para os 
quais se deseja conhecer a representação binária. A seguir são fornecidos N valores inteiros. Cada 
valor inteiro Xi (1 i 
exemplo de entrada. 
	
  
3 
5 –1 127 
N ) varia de -32.768 até 32.767 (inclusive). A Figura 4 apresenta um 
	
  
	
  
	
  
	
  
	
  
Figura 4 – Exemplo de entrada 
	
  
	
  
2.3 Saída 
	
  
A saída corresponde às representações binárias dos N números inteiros lidos na entrada, 
impressos cada um em uma linha com 16 dígitos binários. A saída esperada para a entrada da 
Figura 4 é mostrada na Figura 5. 
	
  
0000000000000101 
1111111111111111 
0000000001111111 
	
  
	
  
	
  
	
  
Figura 5 – Saída esperada para o exemplo de entrada 
	
  
	
  
2.4 Restrições 
	
  
Nas entradas fornecidas: 
N é um inteiro sem sinal e pode variar de 0 a 40.000 (inclusive); 
Xi (1 i N ) é um número inteiro e pode variar de –32.768 a 32.767 (inclusive). 
	
  
	
  
3 CONTAGEM 
	
  
O resto inteiro de uma divisão (operador % da linguagem C ou MOD da linguagem Pascal) é 
uma operação aritmética muito útil quando se deseja descobrir características de determinado 
número. 
	
  
Para os números pares, o resto inteiro de sua divisão por 2 será igual a 0. Para os ímpares, o 
resto inteiro de sua divisão por 2 será igual a 1. Pode-se também usar o resto inteiro da divisão para 
verificar se um número é divisor de outro: se o resto inteiro da divisão de p por q for igual a 0, 
então q é divisor de p. Determinando todos os divisores de um número, pode-se ainda verificar se o 
número é primo ou perfeito. 
	
  
Um número primo é aquele que tem como divisores apenas a unidade (1) e o próprio 
número. Neste desafio considera-se que 1 seja primo, por definição. 
	
  
3.1 Desafio 
	
  
Seu desafio é fazer um programa que leia números inteiros positivos até que o valor 0 seja 
lido. Depois que o programa tiver lido o valor 0, deverá imprimir um relatório informando: o 
número de valores pares, ímpares e primos lidos. 
	
  
3.2 Entrada 
	
  
A entrada é formada por uma série de números inteiros positivos maiores do que 0. O final da 
entrada é sinalizado pelo número 0. Ou seja, deve-se ler valores até que o número zero seja lido. 
 
4 
 	
   	
  
	
  
A Figura 6 apresenta um exemplo de arquivo de entrada. 
	
  
1 2 3 4 5 6 7 8 9 10 0 	
  
Figura 6 – Exemplo de entrada 
	
  
	
  
3.3 Saída 
	
  
A saída corresponde à contabilização do número de valores pares, ímpares, primos e 
perfeitos encontrados na entrada, apresentando-se, em linhas separadas, as expressões: 
“ Pares:” , seguida de um espaço em branco e do número total de valores pares; 
“ Impares:” (sem acento), seguida de um espaço em branco e do número total de valores 
ímpares; 
“ Primos:” , seguida de um espaço em branco e do número total de valores primos; 
 
	
  
A Figura 7 apresenta um exemplo de saída esperada (no caso, a saída esperada para a 
entrada da Figura 6). 
	
  
Pares: 5 
Impares: 5 
Primos: 5 
	
  
	
  
	
  
	
  
	
  
Figura 7 – Saída esperada para o exemplo de entrada 
	
  
4 NÚMERO DE RAÍZES REAIS 
	
  
Uma equação do segundo grau, que tem a forma 
	
  
	
  
	
  
ax 2 
	
  
	
  
	
  
bx c , pode ter duas, uma ou 
nenhuma raiz real. Pode-se verificar o número de raízes reais calculando-seo valor de 
b 2 4ac . Se for maior do que 0, a equação tem duas raízes reais. Se for igual a 0, tem 
uma única raiz. Se for menor do que 0, então a equação não tem nenhuma raiz real. 
	
  
4.1 Desafio 
	
  
Faça um programa que leia um conjunto de coeficientes de raízes de equações do segundo 
grau e calcule o número de raízes que as respectivas equações apresentam. O programa deve ler 
coeficientes até que seja lido um conjunto de coeficientes em que a primeira incógnita seja igual a 
zero. Todos os coeficientes lidos correspondem a valores reais. 
	
  
4.2 Entrada 
	
  
A entrada é formada por uma série de coeficientes reais de equações do segundo grau. Cada 
conjunto de coeficientes possui três incógnitas que são colocadas numa mesma linha. O final da 
entrada é sinalizado por um conjunto com três incógnitas em que a primeira incógnita é igual a 0. A 
Figura 8 apresenta um exemplo de arquivo de entrada. 
	
  
1.0 0 -4.0 
1.0 2.0 3.0 
1.0 4.0 4.0 
0 0 0 
	
  
	
  
	
  
	
  
	
  
Figura 8 – Exemplo de entrada 
	
  
	
  
4.3 Saída 
	
  
A saída corresponde ao número de raízes de cada uma das equações do segundo grau 
especificadas na entrada, apresentadas em linhas separadas. A Figura 9 mostra um exemplo de 
5 
	
  
	
  
saída esperada (no caso, a saída esperada para a entrada da Figura 8). 
	
  
2 
0 
1 
Figura 9 – Saída esperada para o exemplo de entrada 
	
  
	
  
4.4 Restrições 
	
  
Nas entradas fornecidas: 
não há limitação para o número de equações a serem testadas; 
os valores das incógnitas podem ser armazenados em variáveis reais disponíveis em qualquer 
linguagem de programação. 
 
 
 
 
 
 RESPOSTAS	
  DEVEM	
  SER	
  ENVIADAS	
  ATRAVÉS	
  DP	
  FORMULÁRIO	
  ABAIXO:	
  
http://xjulio.org/forms/view.php?id=21056

Outros materiais