lista 1 fundamentos de programação em c de exercicios... · lista 4 – vetores 1) faça um...

32
Lista 1 – Fundamentos de programação em C 1) Faça um programa em C que solicite um número inteiro e escreva o seu sucessor. 2) Faça um programa em C que solicite um número decimal e apresente o dobro deste número. 3) Faça um programa em C que solicite dois números decimais e apresente o resultado da multiplicação entre os números. 4) Faça um programa em C que solicite o preço de um produto e apresente o valor dele com 10% de desconto. 5) Faça um programa em C que solicite o número de uma medida em metros e imprima essa medida em centímetros e milímetros. 6) Faça um programa que solicite o raio de uma esfera e então calcule o seu volume e a sua área. Considere o “pi” como sendo 3.14. V = A = 4 * pi * r 2 7) Faça um programa em C que leia dois números inteiros e apresente o resto da divisão dos números informados. 8) Faça um programa em C que solicite um número e apresente a raiz quadrada deste número. 9) Faça um programa em C que solicite um número e apresente o cubo deste número. 10) Faça um programa em C que leia 3 notas de um aluno e apresente a média das notas deste aluno. 11) Faça um programa em C que leia uma temperatura em graus Celsius e apresente a temperatura em graus Fahrenheit. Formula: F = (9*C+160.0)/5.0. 12) Faça um programa em C que receba um número inteiro de segundos e apresenta a quantidade correspondente em horas, minutos e segundos. Exemplo: 3987 segundos corresponde a: 1 hora, 6 minutos e 27 segundos. 13) Faça um programa em C que receba um número inteiro de dias e apresenta a quantidade correspondente em anos, meses e dias. Considere que todos os meses possuem 30 dias e que o ano possua 360 dias. Exemplo: 3997 dias corresponde a: 11 anos, 1 mês e 7 dias. 14) Faça um programa em C que leia no nome de uma pessoa e o ano que nasceu. O programa deve apresentar na tela a seguinte mensagem: “[Nome da pessoa], você já viveu [Idade da pessoa]”.

Upload: lethuan

Post on 06-Feb-2018

237 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 1 – Fundamentos de programação em C

1) Faça um programa em C que solicite um número inteiro e escreva o seu sucessor.

2) Faça um programa em C que solicite um número decimal e apresente o dobro deste

número.

3) Faça um programa em C que solicite dois números decimais e apresente o resultado da

multiplicação entre os números.

4) Faça um programa em C que solicite o preço de um produto e apresente o valor dele com

10% de desconto.

5) Faça um programa em C que solicite o número de uma medida em metros e imprima essa

medida em centímetros e milímetros.

6) Faça um programa que solicite o raio de uma esfera e então calcule o seu volume e a sua

área. Considere o “pi” como sendo 3.14.

V = A = 4 * pi * r2

7) Faça um programa em C que leia dois números inteiros e apresente o resto da divisão dos

números informados.

8) Faça um programa em C que solicite um número e apresente a raiz quadrada deste número.

9) Faça um programa em C que solicite um número e apresente o cubo deste número.

10) Faça um programa em C que leia 3 notas de um aluno e apresente a média das notas deste

aluno.

11) Faça um programa em C que leia uma temperatura em graus Celsius e apresente a

temperatura em graus Fahrenheit. Formula: F = (9*C+160.0)/5.0.

12) Faça um programa em C que receba um número inteiro de segundos e apresenta a

quantidade correspondente em horas, minutos e segundos.

Exemplo: 3987 segundos corresponde a: 1 hora, 6 minutos e 27 segundos.

13) Faça um programa em C que receba um número inteiro de dias e apresenta a quantidade

correspondente em anos, meses e dias. Considere que todos os meses possuem 30 dias e que

o ano possua 360 dias.

Exemplo: 3997 dias corresponde a: 11 anos, 1 mês e 7 dias.

14) Faça um programa em C que leia no nome de uma pessoa e o ano que nasceu. O programa

deve apresentar na tela a seguinte mensagem: “[Nome da pessoa], você já viveu [Idade da

pessoa]”.

Page 2: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

15) Faça um programa em C que solicite o valor total da compra e o valor percentual de

desconto. Apresente na tela o valor final.

16) Faça um programa em C que leia o dia, mês e ano atual e o dia, mês e ano de nascimento

do usuário. O programa deve imprimir quantos dias o usuário já viveu.

17) Uma matriz 2x2 é composta por duas linhas e duas colunas, conforme imagem abaixo:

A = |

|

Sabendo que o determinante da matriz acima pode ser calculado pela seguinte fórmula:

D = a11 x a22 – a12 x a21

Faça um programa em C que leia os elementos da matriz e então apresente na tela o seu

determinante.

Page 3: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 2 – Estrutura de decisão

1) Faça um programa em C que leia dois números e apresente na tela o maior número

informado.

2) Faça um programa em C que leia um número e informa se ele é positivo ou negativo.

3) Faça um programa em C que leia um número e informa se ele é par ou ímpar.

4) Faça um programa em C que leia a média de um aluno e informe se ele está aprovado

(média maior ou igual a 7,0) ou reprovado (média inferior a 7,0).

5) Faça um programa em C que leia três número e apresenta na tela o maior número.

6) Faça um programa em C que leia três números e apresente na tela o resultado da

subtração entre o maior número com o menor número.

7) Faça um programa em C que leia três números e os exiba em ordem crescente(do

menor para o maior).

8) Faça um programa em C que solicite dois números e apresente o resultado da divisão.

Importante: um número não pode ser dividido por 0. O programa deve fazer essa

verificação.

9) Faça um programa em C que leia o valor total da compra e a forma de pagamento (1 –

A vista, 2 – Parcelado em duas vezes e 3 – Parcelado em 3 vezes) e apresente no final o

valor total da compra. Sabendo que para pagamento a vista há um desconto de 5%,

em duas vezes há um acréscimo de 10% e em três vezes há um acréscimo de 15%.

10) Em uma competição de natação os atletas são classificados em categorias de acordo

com a sua idade. Faça um programa que leia a idade do atleta e apresente na tela em

qual categoria ele deve competir.

Idade Categoria

Até 3 anos (inclusive) Não participa

4 a 6 anos A

7 a 10 anos B

11 a 13 anos C

14 a 15 anos D

16 a 18 anos E

19 anos ou mais Não participa

Page 4: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

11) Considerando a tabela de INSS abaixo, faça um programa em C que leia o salário de

um funcionário e apresente na tela o valor do desconto de INSS.

Salário % de contribuição

Até 1.247,70 8,00

De 1.247,71 até 2.079,50 9,00

De 2.079,51 até 4.159,00 11,00

OBS: Se a pessoa ganhar um salário superior a R$4.159,00 ela irá pagar de INSS 11% de

R$4.159,00

12) Utilizando a estrutura "switch-case" faça um programa que leia um número entre 1 e

12 e então apresente o mês relativo. Exemplo: 01 - Janeiro; 07 - Julho. Caso o usuário

informe um valor fora do intervalo o sistema deve apresentar uma mensagem de erro.

13) Faça um programa em C que leia dois números e apresente na tela as seguintes

opções ao usuário:

1 - Somar

2 - Subtrair

3 - Multiplicar

4 - Dividir

O sistema deve apresentar na tela o resultado da operação selecionada.

14) Faça um programa em C para calcular o salário de um funcionário. Deverão ser

lidos:

O salário bruto;

O número de dependentes.

O programa deve apresentar o salário líquido conforme regra abaixo:

Salário Líquido = Salário Bruto – Desconto INSS + (15,00 * Número de

Dependentes) + Auxílio Passagem (40,00) + Auxílio Refeição (100,00).

Tabela Incidência INSS

Salário Bruto % INSS

Até R$ 300,00 9

R$ 300,01 - R$ 700,00 10

Acima de R$ 700,00 11

Page 5: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 3 – Estrutura de repetição

1) Faça um programa em C que apresente a tabuada do número 3.

2) Faça um programa em C que escreva na tela todos os números entre 5 e 50.

3) Faça um programa em C que leia 50 números. Para cada número lido informar

se ele é par ou ímpar.

4) Faça um programa em C que leia 50 números e encontre o maior número

informado.

5) Faça um programa em C que leia 50 número e encontro o menor número

informado.

6) Faça um programa em C que leia 50 números e encontra a diferença entre o

maior e o menor número informado.

7) Faça um programa em C que leia 50 números e conto quantos números são

pares.

8) Faça um programa em C que leia um número e apresente na tela a tabuada deste

número.

9) Faça um programa em C que leia dois números e então apresente na tela todos

os números que estão entre os valores informados.

10) Faça um programa em C que leia dois números e então apresente na tela a soma

dos números que estão entre os valores informados.

11) Faça um programa que solicite 10 números e então apresente a média dos

números informados.

12) Faça um programa em C que calcule a média da nota dos alunos de uma classe.

O programa deve inicialmente perguntar quantos alunos existem e então solicitar

as notas para calcular a média.

Page 6: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

13) Faça um programa em C que solicite para o usuário uma série de números

decimais. O programa deve parar de solicitar quando o usuário digitar um valor

negativo. Ao final o programa deve informar quantos números foram digitados e

qual a soma dos números. OBS: ignorar o valor negativo na contagem e na

soma.

14) Faça um programa em C que leia um número e conte por quantos números ele é

divisível. O programa deve apresentar essa informação ao final.

15) Um número primo é aquele que é divisível somente por ele mesmo ou por um.

Faça um programa em C que leia um número e informe se ele é ou não primo. O

usuário deve ter a opção de repetir quantas vezes quiser esta operação.

16) Faça um programa em C que leia um número e apresente na tela o seu fatorial.

Exemplo:

Fatorial de 5 = 5 x 4 x 3 x 2 x 1 = 120

Fatorial de 4 = 4 x 3 x 2 x 1 = 24

17) O cardápio de uma casa de lanches é dado pela tabela abaixo:

Código Descrição Preço

101 Misto quente R$ 2,30

102 Hambúrguer R$ 2,60

103 Suco natural R$ 3,00

104 Cerveja R$ 4,50

105 Refrigerante R$ 3,00

Faça um programa em C, que leia os códigos dos itens adquiridos por um consumidor e

a quantidade correspondente, calcule e mostre o valor a pagar. O final da entrada do

pedido é sinalizado com um código zero.

Page 7: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

18) Foi realizada uma pesquisa em Joinville onde se perguntou a cada um dos

entrevistados o seguinte:

Clube de preferência (1 – JEC, 2 – AVAÍ, 3 – OUTROS);

Salário mensal;

Naturalidade (1 – Joinville, 2 - Outras cidades).

Faça um programa em C que mostre:

a) o número de torcedores por clube;

b) médias salariais dos torcedores do Avaí e do Jec;

c) o número de pessoas nascidas em Joinville que torcem para o Avaí;

d) o número de pessoas entrevistadas.

Obs: o número de pessoas entrevistadas é desconhecido. Ao termino da entrevista

o sistema deve perguntar se há uma nova pessoa para ser entrevistada

19) Um viajante fará uma viagem de carro entre duas cidades e ao término deseja

saber:

Quantas vezes foram necessárias abastecer;

Quantos litros foram consumidos para percorrer a distancia indicada;

Quantos litros restaram no tanque após a chegada ao destino.

Faça um programa em C que leia a distância entre as duas cidades, a capacidade do

tanque e o consumo médio do veículo e calcule / mostre as informações solicitadas. O

usuário deve ter a opção de repetir quantas vezes quiser esta operação.

20) A prefeitura de uma cidade deseja fazer uma pesquisa entre seus habitantes.

Faça um programa para coletar dados sobre o salário e número de filhos de cada

habitante e após as leituras, escrever:

a) Média de salário da população

b) Média do número de filhos

c) Maior salário dos habitantes

d) Percentual de pessoas com salário menor que R$ 150,00

Obs.: O final das leituras dos dados se dará com a entrada de um “salário negativo”.

Page 8: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 4 – Vetores

1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em

seguida, conte quantos elementos têm valor negativo e mostre esta informação.

2) Faça um programa em C que leia um vetor com 10 elementos e mostre-os na

ordem inversa.

3) Faça um programa em C que leia um vetor com 100 números e um número

qualquer. Em seguida, substitua todos os valores do vetor iguais ao número

informado por 0 e o mostre.

4) Faça um programa em C que leia um vetor com 80 elementos e mostre o valor

do menor e maior elementos e suas posições no vetor.

5) Faça um programa em C que leia uma série de N notas, e calcule quantas são

10% acima da média e quantas são 10% abaixo.

6) Faça um programa em C que leia um conjunto de 30 valores numéricos inteiros

e distribua-os entre dois vetores, separando os números positivos e negativos.

Mostrar os vetores ao final do processamento.

7) Faça um programa em C que leia um vetor com 20 elementos e o mostre. Em

seguida, troque o primeiro elemento com o último, o segundo com o penúltimo,

etc, até o décimo com o décimo primeiro e mostre o vetor assim modificado.

8) Faça um programa em C que leia um vetor com 20 elementos e o mostra. Em

seguida, troque o primeiro elemento com o décimo primeiro, o segundo com o

décimo segundo, etc, e mostre o vetor assim modificado.

9) Faça um programa em C que leia dois vetores com 10 elementos cada um e

calcule o produto escalar entre eles, mostrando os vetores lidos e o produto

calculado. O produto escalar é calculado da seguinte forma: cada valor do

primeiro vetor deve ser multiplicado pelo valor do elemento correspondente do

segundo vetor e os resultados devem ser somados. Exemplo:

u = [3, 5, 2] v = [2, 1, 5] então: u · v = 3 * 2 + 5 * 1 + 2 * 5

Page 9: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

10) Faça um programa em C que leia dois vetores com 10 elementos cada.

Considerando cada vetor como sendo um conjunto, crie um terceiro vetor que

seja a união dos dois primeiros e o mostre.

11) Faça um programa em C que leia dois vetores com 10 elementos cada.

Considerando cada vetor como sendo um conjunto, crie um terceiro vetor que

seja a intersecção dos dois primeiros e o mostre.

12) Faça um programa em C que leia dois vetores com 10 elementos cada.

Considerando cada vetor como sendo um conjunto, crie um terceiro vetor que

seja a diferença (elementos do primeiro vetor que não existem no segundo vetor)

dos dois primeiros e o mostre.

13) Faça um programa em C que leia dois vetores com 10 elementos cada. Em

seguida, crie um terceiro vetor, que seja a soma dos dois primeiros, e um quarto,

que seja a diferença entre os dois primeiros, e os mostre.

14) Faça um programa em C que leia um vetor com 6 elementos, que é o resultado

de um sorteio da Sena. Em seguida leia outro vetor, também com 6 elementos,

que é a aposta de um apostador. Comparar os vetores e ao final mostrar a aposta,

o resultado e o número de acertos do apostador.

15) Faça um programa em C que leia um vetor A com 10 componentes distintos

inteiros e um vetor B com 5 componentes distintos inteiros e verifique se as seguintes

afirmações são verdadeiras ou falsas:

a) O vetor B está totalmente contido no vetor A; b) O vetor B está parcialmente contido no vetor A, isto é, existe alguma

componente de B em A; c) O vetor B não está nada contido no vetor A, isto é, não existe nenhuma

componente de B no vetor A.

16) Faça um programa em C que leia um vetor com 15 elementos e o mostre. A

seguir, ordene os elementos em ordem crescente e os mostre novamente.

Page 10: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 5 – Matrizes

1) Faça um programa em C que leia duas matrizes 3 X 3 e gere uma terceira matriz com a soma dos elementos correspondentes de cada matriz.

2) Faça um programa em C que leia uma matriz 4 X 4 e encontre o menor valor contido na matriz e sua posição.

3) Faça um programa em C que leia uma matriz 6 X 4 e a mostre. Em seguida, calcule e mostre uma matriz modificada 6 X 5, sendo que os elementos da 5ª coluna são formados com o produto dos elementos da mesma linha.

4) Faça um programa em C que leia uma matriz 5 X 5 e a mostre. Em seguida, troque a segunda linha pela quinta e a primeira coluna pela quarta. Ao final, mostre a matriz resultante.

5) Uma empresa fabrica dois tipos de produtos, com os preços R$ 500,00 e R$ 650,00, respectivamente. Faça um programa em C que leia uma planilha contendo a quantidade vendida de cada produto por mês (considere apenas um ano). Em seguida, mostre as seguintes informações:

a) Mês com maior faturamento; b) Mês com maior quantidade de produtos vendidos; c) A média anual de venda de cada produto .

6) Faça um programa em C que leia uma matriz 3 X 2 e a mostre. Em seguida, determine e mostre sua transposta. (linha vira coluna e coluna vira linha)

7) Faça um programa em C que leia uma matriz quadrada de ordem 4 e um número qualquer. Em seguida, multiplique a diagonal principal por este número e mostre a matriz multiplicada.

8) Faça um programa em C leia duas matrizes de reais, com respectivos tamanhos 5 x 4 e 4 x 6, e imprima a matriz resultante A x B (multiplicação das matrizes), de tamanho 5 x 6.

9) Faça um programa em C que leia duas matrizes 3 X 2 e mostre, em formato bidimensional, a matriz resultante da seguinte regra:

Page 11: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Se i ≤ j C(i, j) = A(i, j), senão C(i, j) = B(i, j). Onde C = matriz resultante, A = matriz 1 e B = matriz 2.

10) Faça um programa em C que leia uma matriz 5 X 5 e calcule e mostre a soma dos elementos abaixo da diagonal principal da matriz, incluindo os elementos da própria diagonal principal.

Page 12: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 6 – Cadeia de caracteres

1) Faça um programa em C que leia uma string de no máximo 80 posições e

apresente as seguintes informações:

a) Tamanho da string

b) Quantidade caracteres números

2) Faça um programa em C que leia duas strings e informe o tamanho de cada string

acompanhado de uma frase que diga se as duas strings são iguais ou diferentes.

3) Faça um programa em C que leia um nome e em seguida o mostre de trás para

frente utilizando somente letras maiúsculas. O programa não pode permitir que

sejam informados números.

4) Faça um programa em C que leia duas strings, sendo a primeira o nome de uma

pessoa, e a segunda seu sobrenome. Concatenar essas strings em uma terceira

string, obedecendo o seguinte formato: sobrenome, vírgula, espaço, primeiro

nome. Apresentar a string concatenada.

5) Faça um programa em C que leia uma quantidade indeterminada de nomes, e

apresente o primeiro nome considerando ordem alfabética.

6) Faça um programa em C que receba uma string como parâmetro e imprima

quantas palavras (separadas por espaço em branco) o mesmo contém.

Page 13: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 7 – Funções

1) Escreva um programa em C que leia 5 valores inteiros e imprima para cada um

o seu correspondente valor absoluto. Para obter o valor absoluto do número

utilize a função “Absoluto” especificada abaixo:

Nome: Absoluto

Descrição: Retorna o valor absoluto do número fornecido.

Entrada: int n

Saída: (int) O respectivo valor absoluto de n.

Observação:

-O valor absoluto de 10 é 10.

-O valor absoluto de -10 é 10.

2) Escreva um programa em C que leia um número indeterminado de valores que

representam raios de círculos. Para cada valor informado imprimir a área e seu

perímetro. O programa será encerrado ao ser fornecido para o raio um valor

negativo. Para obter o valor da área do círculo o programa deverá chamar a

função “AreaCirculo”. Para obter o valor do seu perímetro o programa deverá

chamar a função “CompCircunferencia”.

Nome: AreaCirculo

Descrição: Retorna a área do círculo.

Entrada: float Raio

Saída: (float) A área do círculo

Nome: CompCircunferencia

Descrição: Retorna o comprimento da circunferência (perímetro).

Entrada: float Raio

Saída: (float) O comprimento da circunferência

3) Escreva um programa em C para ler 5 pares de valores (considere que serão

informados apenas valores positivos). Para cada par lido deve ser impresso o

valor do maior elemento do par ou a frase "Eles são iguais" se os valores do par

Page 14: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

forem iguais. Para obter o maior elemento do par utilize a função

“MaiorNumero”.

Nome: MaiorNumero

Descrição: Retorna o maior elemento entre 2 valores positivos. Se eles forem iguais

deve ser retornado o valor -1.

Entrada: (int) Dois valores positivos.

Saída: (int) O maior deles ou -1 se eles forem iguais.

Observação: Considere que os valores de entrada são sempre positivos.

4) Escreva um programa em C para ler 5 números inteiros positivos (utilize a

função “LePositivo”). Para cada valor lido escrever a soma dos inteiros de 1 ao

número informado. O resultado do cálculo desse somatório deve ser obtido

através da função “Somatorio”.

Nome: LePositivo

Descrição: Faz a leitura de um valor. Se ele for negativo ou zero, a leitura deve ser

repetida até que o valor lido seja positivo.

Entrada: Nenhuma.

Saída: (int) o valor lido.

Nome: Somatório

Descrição: Calcula o somatório dos inteiros de 1 ao número fornecido como entrada.

Entrada: (int) Número limite do somatório.

Saída: (int) O valor do somatório.

5) Escreva um programa em C que leia 5 números inteiros positivos (utilizar

“LePositivo”). Para cada número informado escrever a soma de seus divisores

(exceto ele mesmo). Utilize a função “SomaDivisores” para obter a soma.

Nome: SomaDivisores

Descrição: Calcula a soma dos divisores do número informado (exceto ele mesmo).

Entrada: Um número inteiro e positivo.

Saída: A soma dos divisores.

Page 15: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Exemplo: Para o valor 8: 1+2+4 = 7

6) Escreva um programa em C que imprima na tela os números primos existentes

entre 1 e 100. Para verificar se um número é primo utilize a função “EhPrimo”.

Nome: EhPrimo

Descrição: Verifica se um número é o ou não primo.

Entrada: (int) um número inteiro.

Saída: (int) 1 se o número de entrada for primo e 0 caso contrário.

7) Escreva um programa em C que leia 5 pares de valores positivos (“LePositivo”).

Imprima se os elementos de cada par são números amigos (ou não). Dois

números A e B são amigos se a soma dos divisores de A excluindo A é igual a B

e a soma dos divisores de B excluindo B é igual a A. Para verificar se dois

números são amigos utilize a função “SaoAmigos”.

Nome: SaoAmigos

Descrição: retorna 1 se os 2 números de entrada forem amigos, 0 caso contrário.

Entrada: (int) Dois números inteiros positivos.

Saída: (int) 1 se os dois números são amigos, 0 caso contrário.

Observação: Utilize a função SomaDividores do exercício anterior.

Exemplo:

220 e 284 são amigos, pois:

220: 1+2+4+5+10+11+20+22+44+55+110=284

284: 1+2+4+71+142=220

1184 e 1210 também são amigos.

8) Escreva um programa que leia as medidas dos lados de 5 triângulos. Para cada

triângulo imprimir a sua classificação (Não é triângulo, Triângulo Equilátero,

Isósceles ou Escaleno).O programa deve aceitar apenas valores positivos para as

medidas dos lados (utilizar “LePositivo”). Para obter o código da classificação

utilize a função “TipoTriangulo”.

Nome: TipoTriangulo

Page 16: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Descrição: A partir das medidas dos lados de um triângulo, verifica o tipo do triângulo.

Entrada: (int) 3 valores

Saída: (int) 0 se não formam um triângulo.

1 se for um triângulo equilátero.

2 se for um triângulo isósceles.

3 se for um triângulo escaleno.

Para verificar se as medidas formam um triângulo chamar a função EhTriangulo.

Nome: EhTriangulo

Descrição: Verifica se as 3 medidas informadas permitem formar um triângulo. Para

formar um triângulo é necessário que a medida de cada lado seja menor que a soma dos

outros 2.

Entrada: (int) 3 valores.

Saída: (int) 1 se os 3 valores formarem um triângulo e 0 caso contrário.

9) Para evitar erros de digitação em números de grande importância, como código

de uma conta bancária, geralmente se adiciona ao número um dígito verificador.

Por exemplo, o número 1841 é utilizado normalmente como 18414, onde o 4 é o

dígito verificador. Ele é calculado da seguinte forma:

a) Cada algarismo do número é multiplicado por um peso começando de 2 da direita

para a esquerda.

Para cada algarismo o peso é acrescido de 1. Soma-se os produtos obtidos.

1x5 + 8x4 + 4x3 + 1x2 = 51

b) Calcula-se o resto da divisão desta soma por 11:

51 % 11 = 7

c) Subtrai-se de 11 o resto obtido:

11 - 7 = 4

d) Se o valor obtido for 10 ou 11, o dígito verificador será o 0, nos outros casos, o dígito

verificador é o próprio valor encontrado.

Escreva um programa que leia um número indeterminado de valores inteiros de 1 a 999.

Para cada número imprima o seu correspondente dígito verificador. O programa é

Page 17: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

encerrado ao ser fornecido um número fora da faixa estabelecida (1 a 999). Para obter o

valor do dígito verificador utilize a função “CalculaDigito”.

Nome: CalculaDigito

Descrição: Calcula o dígito verificador de um número.

Entrada: (int) Um valor inteiro.

Saída: (int) O dígito verificador do número.

10) Escreva um programa em C que leia um número indeterminado de valores

inteiros de 10 a 9999 onde o último algarismo representa o seu dígito verificador

e imprima para cada número uma mensagem indicando se ele está correto ou

não. O programa é encerrado ao ser fornecido um número fora da faixa

estabelecida (10 a 9999). Utilize a função “DigitoCorreto” para verificar se o

número está correto.

Nome: DigitoCorreto

Descrição: Retorna 1 se o valor de entrada possui o dígito verificador correto e 0 caso

contrário.

Entrada: (int) Um número inteiro.

Saída: (int) 1 se o número possui o dígito verificador correto ou 0 caso contrário.

Utilizar as funções abaixo: ObtemDigito e ObtemNumero.

Nome: ObtemDigito

Descrição: Separa o último algarismo (a unidade) do número.

Entrada: (int) Um número inteiro

Saída: (int) O valor da unidade do número (o último algarismo)

Ex: Para a entrada 1823 a saída será 3

Nome: ObtemNumero

Descrição: Separa o número do dígito verificador.

Entrada: (int) Um número inteiro.

Saída: (int) O número sem o valor da unidade.

Ex: Para a entrada 1823 a saída será 182

Page 18: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 8 – Estrutura

1) Defina uma estrutura que irá representar bandas de música. Essa estrutura deve

ter o nome da banda, que tipo de música ela toca, o número de integrantes e em

que posição do ranking essa banda está dentre as suas 5 bandas favoritas.

a) Crie um looping para preencher as 5 estruturas de bandas criadas no exemplo

passado. Após criar e preencher, exiba todas as informações das bandas/estruturas.

b) Crie uma função que peça ao usuário um número de 1 até 5. Em seguida, seu

programa deve exibir informações da banda cuja posição no seu ranking é a que foi

solicitada pelo usuário.

c) Crie uma função em C que peça ao usuário um tipo de música e exiba as bandas com

esse tipo de música no seu ranking.

d) Crie uma função que peça o nome de uma banda ao usuário e diga se ela está entre

suas bandas favoritas ou não.

e) Agora junte tudo e crie uma aplicação em que exibe um menu com as opções de

preencher as estruturas e todas as opções das questões passadas.

2) Seja uma estrutura para descrever os carros de uma determinada revendedora,

contendo os seguintes campos:

Marca: string de tamanho 15

Ano: inteiro

Cor: string de tamanho 10

Preço: real

a) Escrever a definição da estrutura carro.

b) Declarar o vetor “vetcarros” do tipo da estrutura definida acima, de tamanho 20 e

global.

Crie um menu para:

c) Definir um bloco de programa para ler o vetor “vetcarros”.

d) Definir um bloco de programa que receba um preço e imprima os carros (marca, cor

e ano) que tenham preço igual ou menor ao preço recebido.

e) Defina um bloco de programa que leia a marca de um carro e imprima as informações

de todos os carros dessa marca (preço, ano e cor).

f) Defina um bloco de programa que leia uma marca, ano e cor e informe se existe ou

não um carro com essas características. Se existir, informar o preço.

Page 19: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

3) Seja uma estrutura para descrever os livros de uma loja, contendo os seguintes

campos:

Título: string de tamanho 15;

Autor: string de tamanho 20

Estilo: string de tamanho 10

Código: inteiro

Preço: real

a) Escrever a definição da estrutura livro;

b) Declarar uma variável global para armazenar 50 livros;

c) Criar uma função que leia um livro. A função deve receber como entrada a posição

em que será armazenado o livro.

d) Criar uma função que imprime os dados do livro. A função deve receber a posição

que o livro está armazenado.

e) Fazer um programa utilizando as funções acima que solicite os 50 livros e então os

imprima na tela.

4) Elaborar um algoritmo que auxilie no controle de uma fazenda de gado que

possuí um total de 2000 cabeças de gado. A base de dados é formada por um

conjunto de estruturas (registros) contendo os seguintes campos referente a cada

cabeça de gado:

código: código da cabeça de gado,

leite: número de litros de leite produzido por semana,

alim: quantidade de alimento ingerida por semana - em quilos,

nasc: data de nascimento - mês e ano,

abate: ‘N’ (não) ou ‘S’ (sim).

O campo nasc. é do tipo struct data que por sua vez, possui dois campos:

o mês

o ano

Elaborar funções para:

a) Ler a base de dados (código, leite, alim, nasc.mês e nasc.ano), armazenado em

um vetor de estruturas.

b) Preencher o campo abate, considerando que a cabeça de gado irá para o abate

caso:

tenha mais de 5 anos, ou;

produza menos de 40 litros de leite por semana, ou;

produza entre 50 e 70 litros de leite por semana e ingira mais de 50 quilos de

alimento por dia.

Page 20: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Crie o menu de opções para:

c) Devolver a quantidade total de leite produzida por semana na fazenda.

d) Devolver a quantidade total de alimento consumido por semana na fazenda.

e) Devolver a quantidade total de leite que vai ser produzido por semana na

fazenda, após o abate.

f) Devolver a quantidade total de alimento que vai ser consumido por semana na

fazenda, após o abate.

g) Devolver número de cabeças de gado que iram para o abate.

h) Sair do programa.

5) Seja um algoritmo para controlar os produtos do estoque de um supermercado.

Para cada produto, tem-se os seguintes campos:

nome: string de tamanho 15

setor: caracter

quantidade: inteiro

preço: real //preço por unidade do produto

a) Escrever a definição da estrutura produto.

b) Declarar o vetor estoque do tipo da estrutura definida acima, de tamanho 100 e

global.

Crie um menu para:

c) Definir um bloco de instruções para ler o vetor estoque.

d) Definir um bloco de instruções que receba um setor e devolva o número de

diferentes produtos desse setor.

e) Definir um bloco de instruções que calcule e devolva o total em estoque de

produtos do supermercado.

f) Sair do Programa.

6) Seja um sistema destinado a controlar despesas e dados de um condomínio de

apartamentos. Os dados de cada apartamento são armazenados em um vetor de

estruturas. Para cada apartamento tem-se os seguintes dados:

nome (do responsável)

número (do apartamento)

área (em m2 )

número de moradores

valor (a ser pago no mês)

a) Definir a estrutura acima.

b) Declarar um vetor de estruturas (global), supondo que o condomínio tem 40

apartamentos.

Page 21: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Crie um menu para:

c) Escrever um bloco de instruções responsável por ler o vetor acima, exceto o

campo valor.

d) Escrever um bloco de instruções que retorne a área total do condomínio.

e) Escrever um bloco de instruções que receba a área total do condomínio; leia o

total de despesas do mesmo e calcule para cada apartamento o valor a ser pago

no mês. Esse valor é proporcional à área do apartamento.

f) Fazer um bloco de instruções para imprimir os dados do apartamento que tem o

maior número de moradores. Em caso de haver mais de um, imprimir todos.

g) Escrever um bloco de instruções para sair do programa.

Page 22: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 9 – Recursividade

1) Vários algoritmos em computação usam a técnica de “Dividir para Conquistar”:

basicamente eles fazem alguma operação sobre todos os dados, e depois dividem

o problema em sub-problemas menores, repetindo a operação. Uma equação de

recorrência típica para esse tipo de algoritmo é mostrada abaixo. Faça um

programa em C para resolver essa equação de recorrência.

T(n) = 2T(n/2) + n;

T(1) = 1;

2) O máximo divisor comum (MDC) de dois números inteiros x e y pode ser

calculado usando-se a seguinte definição recursiva:

Faça um programa em C que calcule o MDC usando a definição acima.

3) Pode-se calcular o resto da divisão, MOD, de x por y, dois números inteiros,

usando-se a seguinte definição:

Faça um programa em C que calcule o MOD usando a definição acima.

4) Pode-se calcular o quociente da divisão, DIV, de x por y, dois números inteiros,

usando-se a seguinte definição:

Faça um programa em C que calcule o DIV usando a definição acima.

Page 23: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

5) A função de Ackermann é definida para valores inteiros e não negativos m e n

da seguinte forma:

Faça um programa em C que calcule função de Ackermann usando a definição acima.

6) Escreva uma função recursiva em C que calcule o número de grupos distintos

com k pessoas que podem ser formados a partir de um conjunto de n pessoas. A

definição abaixo da função Comb(n,k) define as regras:

7) Faça uma função recursiva que calcule e retorne o fatorial de um número inteiro

N.

8) Faça uma função recursiva que calcule e retorne o N-ésimo termo da sequência

Fibonacci. Alguns números desta sequência são: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55,

89...

9) A multiplicação de dois números inteiros pode ser feita através de somas

sucessivas. Proponha um algoritmo recursivo Multip_Rec(n1,n2) que calcule a

multiplicação de dois inteiros

Page 24: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 10 – Ponteiros

1) Qual das instruções abaixo é correta para declarar um ponteiro para inteiro?

a) *int pti;

b) *pti;

c) &i;

d) int_pti pti;

e) int *pti;

2) Seja a seguinte sequência de instruções em um programa C:

int *pti;

int i = 10;

pti = &i;

Qual afirmativa é falsa?

a) pti armazena o endereço de i

b) *pti é igual a 10

c) Ao se executar *pti = 20; i passará a ter o valor 20

d) Ao se alterar o valor de i, *pti será modificado

e) pti é igual a 10

3) Na sequência de instruções abaixo:

float f;

float *pf;

pf = &f;

scanf("%f", pf);

a) Efetuamos a leitura de f

b) Não efetuamos a leitura de f

c) Temos um erro de sintaxe

d) Deveríamos estar usando &pf no scanf

e) Nenhuma das opções anteriores

Page 25: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

4) Um ponteiro pode ser usado para dizer a uma função onde ela deve depositar o

resultado de seus cálculos. Escreva uma função hm que converta minutos em

horas-e-minutos. A função recebe um inteiro mnts e os endereços de duas

variáveis inteiras, digamos h e m, e atribui valores a essas variáveis de modo que

m seja menor que 60 e que 60*h + m seja igual a mnts. Escreva também uma

função main que use a função hm.

5) Faça um programa em C usando ponteiros que leia 5 números mostre em ordem

crescente. O programa deverá chamar a função ordena. Esta função irá receber o

endereço da memória dos 5 valores (n1, n2, n3, n4 e n5) e irá alterar seus valores

deixando os valores ordenados a partir do n1.

6) Escreva uma função mm que receba um vetor inteiro v[0..4] e os endereços de

duas variáveis inteiras, digamos min e max, e deposite nessas variáveis o valor

de um elemento mínimo e o valor de um elemento máximo do vetor. Escreva

também uma função main que use a função mm.

DICA: Declarar a função da seguinte forma:

void mm(int *v, int *min, int *max) {

}

Page 26: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 11 – Alocação dinâmica de memória

1) Faça um programa em C utilizando alocação de memória dinâmica que solicite o

total de provas realizadas. As provas deverão ser armazenadas em um vetor de

números reais dinâmico. O programa deverá ler as notas e então calcular a média

das notas.

2) Para o programa anterior, além de calcular a média o programa deve passar a

informar quantas notas foram acima da média, abaixo da média e exatamente

igual a média.

3) Continuando o exercício anterior, o programa deverá armazenar em um vetor

dinâmico todas as notas acima da média, abaixo da média e igual a média. O

programa deverá exibir ao usuários essas informações.

4) Faça um programa em C que declare a estrutura “Livro”. A estrutura será

composta pelo Titulo do livro, escritor, número de paginas e ano de publicação.

Este programa deverá conter um vetor dinâmico da estrutura livro. Os livros

deverão ser inseridos pelo usuário um a um e sempre que for concluído o

cadastro de um livro o sistema deve perguntar se o usuário deseja inserir um

novo livro. Ao final o programa deve exibir o total de livros inseridos.

5) Para o programa anterior, além de exibir o total de livros inseridos o programa

deverá agora exibir o(s) livro(s) mais antigo(s) (titulo e autor), o(s) livro(s) com

o maior número de página.

6) Acrescentar na estrutura do programa 5 o preço do livro e fazer com que o

usuário digite essa informação no momento de inserir um livro. Além das saídas

anteriores, o programa deverá agora informar o(s) livro(s) mais caro(s) (titulo e

autor).

7) Elaborar um programa em C que auxilie no controle de uma fazenda de gado. A

quantidade de gados será determinada pelo usuário e por isso será armazenado

em uma variável com alocação dinâmica. A base de dados é formada por um

conjunto de estruturas (registros) contendo os seguintes campos referente a cada

cabeça de gado:

código: código da cabeça de gado,

leite: número de litros de leite produzido por semana,

alim: quantidade de alimento ingerida por semana - em quilos,

nasc: data de nascimento - mês e ano,

abate: ‘N’ (não) ou ‘S’ (sim).

Page 27: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

O campo nasc. é do tipo struct data que por sua vez, possui dois campos:

o mês

o ano

Elaborar funções para:

a) Ler a base de dados (código, leite, alim, nasc.mês e nasc.ano), armazenado em

um vetor de estruturas.

b) Preencher o campo abate, considerando que a cabeça de gado irá para o abate

caso:

tenha mais de 5 anos, ou;

produza menos de 40 litros de leite por semana, ou;

produza entre 50 e 70 litros de leite por semana e ingira mais de 50 quilos de

alimento por dia.

Crie o menu de opções para:

a) Inserir novo gado.

b) Devolver a quantidade total de leite produzida por semana na fazenda.

c) Devolver a quantidade total de alimento consumido por semana na fazenda.

d) Devolver a quantidade total de leite que vai ser produzido por semana na

fazenda, após o abate.

e) Devolver a quantidade total de alimento que vai ser consumido por semana na

fazenda, após o abate.

f) Devolver número de cabeças de gado que iram para o abate.

g) Sair do programa.

Page 28: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 12 – Pilha

1) Utilizando pilhas, faça um programa em C que armazene 10 números. O

programa deve ir solicitando números para o usuário até que a pilha esteja cheia.

Após inserir os 10 valores o sistema deve imprimir os elementos da pilha.

2) Utilizando pilhas, faça um programa em C que armazene 10 números. O

programa deve dar a opção para o usuário inserir um valor na pilha e também

remover um valor da pilha. Caso o usuário tente inserir um valor que excede o

tamanho da pilha o sistema deve exibir que a pilha está cheia. Caso o usuário

tente remover um valor da pilha e ela esteja vazia o sistema deve informar que a

pilha está vazia.

3) Continuando o exercício anterior, faça com que o programa apresente a opção de

exibir os valores da pilha. Selecionando essa opção o sistema deve exibir os

números digitados.

4) Faça um programa em C que armazene em uma estrutura o modelo, placa e ano

de um carro. O programa deve criar uma pilha capaz de armazenar até 10 carros

e ter a função incluir novo elemento, excluir ultimo e listar todos os registros.

Page 29: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 13 – Fila

1) Utilizando o conceito de fila simples, faça um programa em C que armazene até

10 valores na fila. O programa deve ter a opção de incluir novo elemento,

excluir ou ainda listar os elementos da fila. O programa deverá verificar se a fila

está cheia ao incluir um novo elemento ou então se está vazia ao excluir um

elemento.

2) Faça o programa anterior utilizando fila simples dinâmica.

3) Faça o programa 1 utilizando fila simples reordenada.

4) Faça o programa 1 utilizando fila circular.

5) Elaborar um programa que controle o estoque de uma empresa. O programa

deve conter um menu com as seguintes opções:

1 – Exibir estoque;

2 – Dar entrada no estoque;

3 – Remover item do estoque.

Regras:

Capacidade do estoque é infinita;

Para cada entrada no estoque deve-se armazenar o número da nota fiscal e a

quantidade comprada;

Para remover o item do estoque deve-se informar apenas a quantidade. Deve ser

removido do mais antigo para o mais atual;

Validar se há produto em estoque antes de remover;

Para exibir o estoque deve-se listar a nota fiscal e a quantidade de itens daquela

nota disponível.

Exemplo:

Page 30: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 14 – Lista simplesmente encadeada

1) Utilizando o conceito de lista simplesmente encadeada, faça um programa em C

que armazene em uma estrutura o RA do aluno, nome do aluno e a sua média. O

programa deve ter a opção de incluir novo aluno, excluir ou ainda listar os

alunos da lista.

2) Continuando o exercício 1, faça com que o aluno seja inserido em ordem

alfabética.

3) Continuando o exercício 2, faça com que ao excluir um aluno o sistema pergunte

qual o RA do aluno que ele deseja excluir e exclua o aluno selecionado.

4) Continuando o exercício 3, faça com que o sistema não permita incluir dois

alunos com o mesmo RA.

5) Continuando o exercício 4, faça com que o programa informe uma mensagem de

usuário não existente no momento da exclusão caso o aluno que o usuário tente

excluir não exista.

6) Com base no exercício 1, faça com que o aluno seja inserido em ordem

crescente de nota.

Page 31: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 15 – Lista duplamente encadeada

1) Utilizando o conceito de lista duplamente encadeada, faça um programa em C

que armazene em uma estrutura o RA do aluno, nome do aluno e a sua média. O

programa deve ter a opção de incluir novo aluno, excluir ou ainda listar os

alunos da lista.

2) Continuando o exercício 1, faça com que o aluno seja inserido em ordem

alfabética.

3) Continuando o exercício 2, faça com que ao excluir um aluno o sistema pergunte

qual o RA do aluno que ele deseja excluir e exclua o aluno selecionado.

4) Continuando o exercício 3, faça com que o sistema não permita incluir dois

alunos com o mesmo RA.

5) Continuando o exercício 4, faça com que o programa informe uma mensagem de

usuário não existente no momento da exclusão caso o aluno que o usuário tente

excluir não exista.

6) Com base no exercício 1, faça com que o aluno seja inserido em ordem

crescente de nota.

Page 32: Lista 1 Fundamentos de programação em C de Exercicios... · Lista 4 – Vetores 1) Faça um programa em C que leia um vetor com 6 elementos e os mostre. Em seguida,

Lista 16 – Lista circular

1) Utilizando o conceito de lista circular, faça um programa em C que armazene em

uma estrutura o RA do aluno, nome do aluno e a sua média. O programa deve

ter a opção de incluir novo aluno, excluir ou ainda listar os alunos da lista.

2) Continuando o exercício 1, faça com que o aluno seja inserido em ordem

alfabética.

3) Continuando o exercício 2, faça com que ao excluir um aluno o sistema pergunte

qual o RA do aluno que ele deseja excluir e exclua o aluno selecionado.

4) Continuando o exercício 3, faça com que o sistema não permita incluir dois

alunos com o mesmo RA.

5) Continuando o exercício 4, faça com que o programa informe uma mensagem de

usuário não existente no momento da exclusão caso o aluno que o usuário tente

excluir não exista.

6) Com base no exercício 1, faça com que o aluno seja inserido em ordem

crescente de nota.