Lista 1 Fundamentos de programação em C

Documentos relacionados
2. Escreva um programa em C para ler uma temperatura em graus Celsius, calcular e escrever o valor correspondente em graus Fahrenheit.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

Lógica de Programação Módulo I Prof.: Ricardo Lokchin. Fazer os exercícios abaixo na Linguagem C ou em ALGORITMOS.

EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS

Exercícios: Vetores e Matrizes

CADERNO DE EXERCÍCIOS ALGORITMOS

Estruturas de Repetição WHILE e DO- WHILE

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

LISTA DE EXERCÍCIO. 2) Fazer um algoritmo para calcular a soma entre dois números e multiplicar o resultado pelo primeiro.

3) Faça um algoritmo para ler a base e a altura de um triângulo. Em seguida, escreva a área do mesmo. Obs.: Área = ( Base * Altura ) / 2

Algoritmos e Lógica de Programação. Prof. Marcos Antonio Estremoe. 1 - Faça um programa que imprima a frase: Bem Vindo à Engenharia Firb 2014.

Lista de Exercícios 5

Resolva os exercícios utilizando a linguagem de programação C

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

69) Acrescentar uma mensagem de VALOR INVÁLIDO no exercício [68], caso o segundo valor informado seja ZERO.

Informática Aplicada I Lista: Fluxograma

1ª Lista de Exercícios

LISTA DE EXERCÍCIOS. 1.2) Escreva um programa para ler o raio de um círculo, calcular e escrever a sua área (Fórmula: πr 2 ).

Exercícios Repetição

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

Exercícios: comandos condicionais

1ª LISTA DE EXERCÍCIOS

4ª Lista de Exercícios de Programação I

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C

Exercícios de Programação

Exercícios: comandos condicionais

4ª Lista de Exercícios de Programação I

LISTA DE ATIVIDADES ...

Parte I - Expressões lógicas e operadores

Fundamentos de Programação Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte 15 de maio de 2018.

Função "malloc" e "calloc":

Maratona de Programação

9. imprimir o fatorial do número 10. imprimir o sucessor e o anterior de um número lido 11. Imprimir se um número é primo ou não 12. Imprimir os 100 p

Correção dos exercícios

SSC Introdução à Programação para Engenharias. Lista 01 Entrega em 06/04/ h10

Exercícios TVC2 PARTE I:

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

3ª Lista de Exercícios de Programação I

1. Faça uma função que recebe por parâmetro o raio de uma esfera e calcula o seu volume.

Lista de Exercícios 02

Programação II Prof. Marcos Antonio Estremote ESTRUTURAS CONDICIONAIS E DE REPETIÇÃO

Exercícios de Linguagem C

Exercícios sobre algoritmos

Exercícios: Comandos de Repetição

Algoritmos Sequenciais

Lista de exercícios 1 (Cast)

Lista de Exercícios Linguagem C#

Série de Exercícios - Comandos Repetitivos 1. Codificar o algoritmo para imprimir os N primeiros números naturais pares.

Lista de Exercícios ICC 1 Ponteiros

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

BCC701 Programação de Computadores I Lista de Exercícios 05: Funções Definidas pelo Usuário

Lista 2 TP060. Exercícios Vetores

LISTA DE EXERCÍCIOS (2) PYTHON

Algoritmos. Introdução à Ciência da Computação I. Prof. Jó Ueyama

ALGORITMOS E PROGRAMAÇÃO DE COMPUTADORES I. Trabalho 1 (T1)

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

Disciplina: Algoritmos e Programação Professor: Paulo César Fernandes de Oliveira, BSc, PhD

LISTA DE EXERCÍCIOS: 2ª Unidade Funções

Lista de Exercícios Complementares 1 - Prof. Red. Entrada e Saída de Dados

Lista de Exercícios Estrutura de Repetição

GEQ Prof. Paulo R. Coelho. Lista para prova

EXERCÍCIOS: Estrutura Sequencial, IF (SE), ELSE (Senão)

4ª Série de Exercícios Variáveis Compostas Homogêneas 1. Faça um algoritmo que leia, via teclado, 10 valores do tipo inteiro e os guarde na memória.

Laboratório de Programação A Exercícios sobre vetores e matrizes

Ficha 1 Noções de sequência e decisão em algoritmia

1. Faça um algoritmo que receba dois números e exiba o resultado da sua soma. subtração, multiplicação e a divisão dos números lidos.

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Exercícios: Recursão

1 - VARIÁVEIS COMPOSTAS HOMOGÊNEAS (VETORES E MATRIZES)

Lista de Exercícios 3

Valor: 0,0 CORREÇÃO. 1. Construa um programa que leia a sua idade, o seu nome e depois imprima na tela.

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

tipo e tamanho e com os "mesmos" elementos do vetor A, ou seja, B[i] = A[i].

Segunda lista de exercícios

1 - VARIÁVEIS COMPOSTAS HOMOGÊNEAS (VETORES E MATRIZES)

Programação de Computadores I BCC 701 Lista de Exercícios Módulo

Curso: Técnico em Informática Integrado Disciplina: Algoritmos Carga horária: 60h (80h/a) Período: 2º Ano Professor: Edmilson Barbalho Campos Neto

Disciplina de Lógica de Programação - LOPS1

1 ESTRUTURA SEQUENCIAL

Exercícios: Arquivos

Data de Entrega: 04/05/2016 Lista: Nota: Trabalho Prático. de 0 a 200,00 nenhum crédito (crédito = 0) 40% do valor do saldo médio

SEGUNDA LISTA DE EXERCÍCIOS ALGORÍTMOS SEQUENCIAS E CONDICIONAIS

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

LISTA DE EXERCÍCIOS - ro. 04

Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02

Operadores e instruções

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 04 Estruturas de Dados Homogêneas Vetores

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Lista de Exercícios Algoritmos Vetores. 10) Escreva um algoritmo em PORTUGOL que armazene em um vetor todos os números

Oficina de Python Prof. Me. José Carlos Perini

Algoritmos e Programação

Universidade Federal de Mato Grosso do Sul. Lista de Exercícios 2

Oficina de Python Prof. Me. José Carlos Perini

Transcrição:

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].

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.

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 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 Categoria

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

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.

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.

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.

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

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.

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:

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.

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.

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

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.

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

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 é

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

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.

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.

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 m 2 ) 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.

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.

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.

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

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

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) { }

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).

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.

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.

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:

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.

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.

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.