1. VARIÁVÉIS, OPERADORES E EXPRESSÕES

Propaganda
UDESC- Joinville
DISCIPLINA: Linguagem de Programação TURMA: A
SEMESTRE/ANO: 01/2014
SALA: F203
PROFESSORA: Rebeca Schroeder Freitas
Aulas segunda-feira das 19hs às 22h30
LISTA DE EXERCÍCIOS
Sumário
1. VARIÁVÉIS, OPERADORES E EXPRESSÕES............................................................................1
2. ESTRUTURAS DE CONTROLE – SELEÇÃO..............................................................................2
3. ESTRUTURAS DE CONTROLE – REPETIÇÃO..........................................................................3
4. FUNÇÕES........................................................................................................................................3
5. VETORES........................................................................................................................................4
6. PONTEIROS....................................................................................................................................5
7. E STRUTURA DE DADOS.............................................................................................................6
8. ARQUIVOS......................................................................................................................................7
1. VARIÁVÉIS, OPERADORES E EXPRESSÕES
1.1) Faça um programa que declare uma variável real, atribua a essa variável a expressão
154/254 e mostre o resultado que está armazenado na variável. Faça com que a precisão do
resultado desta expressão seja mantida.
1.2) Escreva um programa para ler o raio de um círculo, calcular e escrever a sua área
(Fórmula: πR
2
).
1.3) Escreva um programa para ler uma temperatura em graus Fahrenheit, calcular e escrever
o valor correspondente em graus Celsius (Fórmula:
C F −32
=
5
9
).
1.4) Escreva um programa para ler uma temperatura em graus Celsius, calcular e escrever o
valor correspondente em graus Fahrenheit.
1.5) Escreva um programa para calcular e imprimir o número de lâmpadas necessárias para
iluminar um determinado cômodo de uma residência. Dados de entrada: a potência da
lâmpada utilizada (em watts), as dimensões (largura e comprimento, em metros) do cômodo.
Considere que a potência necessária é de 18 watts por metro quadrado.
1.6) Escreva um programa para ler as dimensões de uma cozinha retangular (comprimento,
largura e altura), calcular e escrever a quantidade de caixas de azulejos para se colocar em
todas as suas paredes (considere que não será descontada a área ocupada por portas e
janelas). Cada caixa de azulejos possui 1,5 m2.
1.7) Um motorista de táxi deseja calcular o rendimento de seu carro na praça. Sabendo-se que
o preço do litro de combustível é de R$ 2,90, escreva um programa para ler: a marcação do
odômetro (Km) no início do dia, a marcação (Km) no final do dia, o número de litros de
combustível gasto e o valor total (R$) recebido dos passageiros. Calcular e escrever: a média
do consumo em Km/l e o lucro do dia.
1.8) A equipe Renault deseja calcular o número mínimo de litros que deverá colocar no tanque
de seu carro para que ele possa percorrer um determinado número de voltas até o primeiro
reabastecimento. Escreva um programa que leia o comprimento da pista (em metros), o
número total de voltas a serem percorridas no grande prêmio, o número de reabastecimentos
desejados e o consumo de combustível do carro (em Km/l). Calcular e escrever o número
mínimo de litros necessários para percorrer até o primeiro reabastecimento. OBS: Considere
que o número de voltas entre os reabastecimentos é o mesmo.
2
1.9) Uma equação do segundo grau, que tem a forma ax +bx+c , pode ter duas, uma ou
nenhuma raiz real. Pode-se verificar o número de raízes reais calculando-se o valor de
Δ=b² −4ac . Se Δ for maior do que 0, a equação tem duas raízes reais. Se ∆ for igual a 0, tem
uma única raiz. Se ∆ for menor do que 0, então a equação não tem nenhuma raiz real. Faça um
programa que leia os coeficientes de uma equação do segundo grau e calcule o número de
raízes reais que a respectiva equação apresenta.
2. ESTRUTURAS DE CONTROLE – SELEÇÃO
2.1) Escreva um programa que leia o código de origem de um produto e imprima na tela a
região de sua procedência conforme a tabela abaixo:
código
código
código
código
1
2
3
4
:
:
:
:
Sul
Norte
Leste
Oeste
código
código
código
código
5 ou 6: Nordeste
7, 8 ou 9 : Sudeste
10 : Centro-Oeste
11 : Noroeste
Observação: Caso o código não seja nenhum dos especificados o produto deve ser classificado
como Importado.
2.2) Escreva um programa que leia as notas das duas avaliações obrigatórias e a nota de uma
avaliação optativa. Caso o aluno não tenha feito a optativa deve ser fornecido o valor –1.
Calcular a média do semestre considerando que a prova optativa substitui a nota mais baixa
entre as duas primeiras avaliações. Escrever a média e mensagens que indiquem se o aluno foi
aprovado, reprovado ou está em exame, de acordo com as informações abaixo:
Aprovado : media >= 7.0
Reprovado: media < 3.0
Exame: media >= 3.0 e < 7.0
2.3) As maçãs custam R$ 0,30 cada se forem compradas menos do que uma dúzia, e R$ 0,25
se forem compradas pelo menos doze. Escreva um programa que leia o número de maçãs
compradas, calcule e escreva o valor total da compra.
2.4) Escreva um programa para ler 3 valores inteiros (considere que não serão lidos valores
iguais) e escreva-os em ordem crescente.
2.5) Tendo como entrada a altura e o sexo (codificado da seguinte forma: 1:feminino
2:masculino) de uma pessoa, construa um programa que calcule e imprima seu peso ideal,
utilizando as seguintes fórmulas:
- para homens : (72.7 * altura) – 58
- para mulheres : (62.1 * altura) – 44.7
2.6) Escreva um programa que leia as medidas dos lados de um triângulo e escreva se ele é
Equilátero, Isósceles ou Escaleno.
2.7) Faça um programa em C que apresente ao usuário o seguinte menu:
1234-
MENU
Somar 2 números
Subtrair 2 números
Multiplicar 2 números
Dividir 2 números
Opção:
O programa deve ler a opção escolhida pelo usuário, em seguida pedir que ele informe 2
números e por fim executar a operação desejada de acordo com a opção selecionada
mostrando seu resultado. Utilize a estrutura switch-case para tratar a opção do menu
selecionada pelo usuário.
3. ESTRUTURAS DE CONTROLE – REPETIÇÃO
3.1) Considere que a população de um país A é de 90 milhões de habitantes e a população de
um país B é de 200 milhões. Considere também que a taxa de crescimento do país A é de 3%
ao ano, e a de B 1,5% ao ano. Escreva um programa em C que considere estas informações e
calcule e escreva a quantidade de anos que serão necessários para que a população de A se
iguale ou ultrapasse a população de B.
3.2) Um número primo é aquele que é divisível somente por ele mesmo e por um. Faça um
programa em C que mostre todos os números primos entre 1 e 100.
3.3) Ache o primeiro número, entre 1 e 1 milhão que é divisível por 11, 13 e 17.
3.4) Elabore um programa em C para controlar uma pesquisa entre os eleitores de Joinville que
votaram no candidato a prefeito Rogério Novaes. O programa deve ler o salário de cada um
dos 150 eleitores que devem ser entrevistados. Ao final da leitura dos 150 salários, o programa
deve exibir na tela as seguintes informações:
a) A média de salário dos eleitores entrevistados;
b) A diferença entre o maior salário e o menor salário dos entrevistados;
c) A quantidade de entrevistados que pertencem a classe média. Considere que o
salário da classe média deve estar entre R$ 1064 e R$ 4591.
3.5) O quadrado de um número natural n é dado pela soma dos n primeiros números ímpares
consecutivos. Por exemplo, 12=1, 22=1+3, 32=1+3+5, 42=1+3+5+7, etc. Faça um programa
em C em que dado um número n informado pelo usuário, o programa calcule seu quadrado
usando a soma de ímpares ao invés de produto.
3.6) Faça um programa em C para resolver o seguinte somatório. O usuário deve informar o
valor de n e o programa deve exibir o resultado do somatório.

n
(i*(i-1))
i=2
3.7) Escreva um programa em C que leia um número inteiro N e em seguida imprima N linhas
do triângulo de Floyd:
Ex: N=6
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
4. FUNÇÕES
4.1) Construa um programa que unifique os exercícios 1.3 e 1.4 de forma que uma mesma
função seja capaz de converter uma temperatura na unidade de medida desejada pelo usuário
4.2) Faça um programa para ler um inteiro N > 0 e calcular o seguinte somatório:
S = N + N-1 + N-2 + N-3 + ... + 0.
A função deve receber o valor de N e devolver o valor de S.
4.3) Escreva um programa para mostrar o N termo da série de Fibonacci: 1, 1, 2, 3, 5, 8, 13,
21,..... Crie uma função chamada FIB que deve receber N como parâmetro, calcula e imprime o
termo de número N da série.
4.4) Escreva um programa que implemente um conversor de sistemas numéricos. Inicialmente
o programa deverá apresentar um menu com as seguintes opções para posterior escolha do
usuário:
1234-
Conversão:
Decimal para binário
Binário para decimal
Decimal para hexadecimal
Sair do programa.
Opção:
O programa deverá esperar que o usuário escolha sua opção e, em seguida, deverá solicitar
que o número a converter seja informado (caso a escolha for uma das opções de 1-3). Faça
com que as opções de 1-3 do menu sejam implementadas por funções distintas que recebem
um número como parâmetro. A impressão do menu também deverá ser implementada por
uma função. Após a conversão de um número, o menu deverá ser apresentado novamente, e o
programa será finalizado apenas quando a opção 4 for escolhida.
4.5) Escreva um programa com uma função chamada MM que recebe dois parâmetros, A e B, e
devolve o menor dos dois em A e o maior dos dois em B. Caso sejam passados valores
repetidos, a ordem da resposta entre eles não importa.
Use passagem de parâmetros por referência.
4.6) Escreva um programa com uma função que recebe um número decimal de dois algarismos
por referência e altere-o de forma que o número fique invertido. Exemplo: o número 23 é
transformado em 32.
4.7) Reescreva os exercícios 4.2 de forma a resolvê-lo através de uma função recursiva.
4.8) Reescreva os exercícios 4.3 de forma a resolvê-lo através de uma função recursiva.
4.9) Escreva uma função recursiva para resolver o seguinte somatório:

n
(i*i)
i=1
A função recursiva deve receber n como parâmetro e retornar o resultado do somatório.
5. VETORES
5.1) Faça um programa que solicite ao usuário o preenchimento de um vetor de floats A com
10 posições. Criar e imprimir um segundo vetor seguindo as regras:
a) os elementos de índice par (posição 0, 2, 4, 6 e 8) são calculados pelos
correspondentes em A dividido por 2;
b) os elementos de índice ímpar são calculados pelos correspondentes em A
multiplicados por 3.
5.2) Faça um programa que leia dois vetores A e B de N elementos inteiros, intercale os
elementos formando um novo vetor C. Imprima o vetor C.
5.3) Um palíndromo é uma seqüência de caracteres cuja leitura é idêntica se feita da esquerda
para a direita ou vice-versa. Por exemplo , OSSO e OVO são palíndromos. Em frases, os
espaços são ignorados. Por exemplo, SUBI NO ONIBUS é uma frase palíndromo. Fazer um
programa que leia uma string e diga se ela é ou não um palíndromo.
5.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.5) Faça um programa que leia uma matriz 5 X 5 e calcule e escreva a média dos elementos
localizados na área marcada com '*'.
* * * *
* * *
* *
*
6. PONTEIROS
6.1) Desenvolver um programa que leia um vetor de números inteiros contendo 10 elementos
e exiba na tela todos os números armazenados nas posições pares do vetor. Usar aritmética de
ponteiros.
6.2) Desenvolver um programa que leia uma string qualquer e mostre quais foram as vogais
encontradas na string. Usar aritmética de ponteiros.
6.3) Implemente um programa, que leia 3 números inteiros. Some uma unidade ao maior número lido através de ponteiros e escreva seu valor e seu endereço de memória. Subtraia uma
unidade do menor número lido através de ponteiros e escreva seu valor e seu endereço de memória. Escreva o número de valor intermediário e seu endereço de memória utilizando ponteiros.
6.4) Fazer uma função para:
a. Receber dois ponteiros para char (char*) como parâmetro e um número
representando uma certa quantidade de caracteres.
b. procurar, no vetor apontado pelo parâmetro 1, o primeiro caracter de espaço
(‘ ‘) ou o fim de vetor (representado pela quantidade fornecida no parâmetro
3).
c. copiar os caracteres anteriores ao espaço no vetor indicado pelo segundo
parâmetro.
d. retornar o número de caracteres copiados.
6.5) Fazer um programa para:
a. declarar variáveis a, b, c, d do tipo int.
b. declarar variáveis e, f, g, h do tipo float.
c. declarar vetor v de 10 elementos do tipo char.
d. declarar variável x do tipo int.
e. criar um ponteiro apontando para o endereço de a.
f. incrementar o ponteiro, mostrando o conteúdo do endereço apontado (em
forma de número). Caso o endereço coincida com o endereço de alguma
outra variável, informar o fato.
6.6) Fazer uma função que:
a. receba 3 números como parâmetros: A, B e C.
b. ordene de tal forma que, ao final da função, A contenha o menor número e C
o maior.
c. mostre os números ordenados.
6.7) Fazer uma função DIVS que:
a. recebe como parâmetro um número inteiro num por valor e dois números
inteiros max e min por referência;
b. retorna 0 se o número num é primo e 1 caso contrário. Se o número não for
primo, as variáveis max e min devem assumir os valores do menor e do
maior divisores inteiros do número, respectivamente, desconsiderando o
número 1 e o próprio número num.
6.8) Fazer um programa que receba do usuário a quantidade N de números a ser digitada. Em
seguida, o programa deve alocar dinamicamente um vetor de N inteiros, receber N números do
usuário e armazenar no vetor, e mostrar o maior valor do vetor, o menor valor do vetor e a
média dos valores.
6.9) Faça um programa em C que Implemente as seguintes funções para manipulação de
strings: strlen, strcat, strcmp. O retorno de valores e recebimento de parâmetros deve ser o
mesmo das funções usadas na Linguagem C.
7. ESTRUTURA DE DADOS
7.1) Dada a struct abaixo, declare duas variáveis (a1, a2). Solicite ao usuário o preenchimento
de a1 (matricula, nome, end) e em seguida faça a2 = a1. Imprima os campos de a2 e veja o
resultado.
struct Aluno
{
int matricula;
char nome[50];
char end[50];
};
7.2) Criar um programa que crie uma estrutura qualquer com pelo menos 3 campos de tipos
diferentes e solicite o preenchimento de seus campos ao usuário. Em seguida passar a
estrutura como parâmetro para uma função que simplesmente imprimirá os dados na tela.
7.3) Dada as estruturas abaixo, criar um vetor de 5 posições do tipo Funcionário. Solicitar ao
usuário o preenchimento dos dados para cada posição (funcionário) e, ao final, mostrar
ordenado por código:
struct End {
struct Funcionario {
char rua[30];
int codigo;
int num;
char nome[50];
char cidade[50]
char depto[50];
};
float salario;
End end;
};
7.4) Considerando que um time possui 5 jogadores:
1. declare duas estruturas TIME (codigo (int), nome (char[30]), ano_fundacao (int) ,
jogadores (JOGADOR[5]) ) e JOGADOR (nr_camisa (int) , nome (char[30]) );
2. crie um vetor de 5 posições da estrutura time e solicite ao usuário o preenchimento.
3. Ao final, mostrar todos os jogadores de times cujo ano de fundação seja <= 1950).
7.5) Uma determinada loja precisa de um simples cadastro de clientes que deverá:
1. permitir o cadastramento(inclusão, exclusão, alteração, consulta e listagem) de até 10
clientes (código (int), nome (char[50]), telefone (char[20]) e email (char[50]);
2. possibilitar a consulta por código ou nome;
3. possibilitar a listagem por ordem de nome ou código;
OBS.
- Disponibilizar um menu ao usuário com as opções;
- Utilize funções específicas para implementar cada uma das opções do menu;
- Exemplo do menu:
1- Incluir cliente
2- Alterar cliente
3- Excluir cliente
4- Consultar cliente (nome)
5- Consultar cliente (código)
6- Listar clientes por ordem de nome
7- Listar clientes por ordem de código
8- Sair
8. ARQUIVOS
8.1) Faça um programa que abra um arquivo texto chamado TESTE.TXT (criado por você no
bloco de notas), leia e imprima suas linhas na tela.
8.2) Fazer um programa que abra um arquivo texto qualquer (caminho do arquivo deve ser
solicitado ao usuário), leia e imprima suas linhas.
8.3) Fazer um programa que solicite 5 palavras ao usuário, coloque em ordem alfabética e
grave em um arquivo texto (uma em cada linha).
8.4) Fazer um programa que leia um arquivo texto e copie para outro (novo);
8.5) Escreva um programa que solicite o preenchimento de um vetor de inteiros de 10
posições. Depois, gravar em um arquivo texto chamado VETOR.TXT, as seguintes informações:
Maior valor no vetor: 999;
Menor valor no vetor: 999;
Média aritmética dos valores: 999;
Somatório dos valores: 999;
Vetor ordenado: 999,999,999,999,999,999,999,999,999,999;
8.6) Fazer um programa que solicite o preenchimento de um vetor de estruturas com 5
posições (declare uma estrutura qualquer). Ao final, gravar (fwrite) o vetor de estruturas em
um arquivo chamado DADOS.DAT
8.7) Alterar o programa do exercício anterior para, caso exista o arquivo DADOS.DAT, ao invés
de solicitar o preenchimento, ler do arquivo.
Download