Programação I – Electrónica e Computadores – 2003/2004
Ficha 1
Noções de sequência e decisão em algoritmia
1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o
algoritmo e especifique as estruturas de dados necessárias para a resolução do
problema. (tempF=(tempC x 9)/5 + 32)
2. Ler um valor em escudos, converter esse valor para euros e mostrar o resultado.
Elabore o algoritmo, tendo em atenção que caso seja introduzido um valor
negativo, deverá ser mostrada uma mensagem de erro.
Utilize a seguinte taxa de conversão: 1 euro = 200,48 escudos.
3. Um centro desportivo pratica os seguintes preços:
?? 1ª hora: 2000$
?? 2ª hora: 1500$
?? 3a hora: 750$/hora
O tempo de permanência no centro é contabilizado em horas e minutos. Por
exemplo, se um cliente permanecer 2 horas e 30 minutos no centro desportivo,
pagará 2000$ (1ª hora) + 1500$ (2ª hora) + 375$5 (30 minutos a 750$/hora).
Elabore um algoritmo que, lido o tempo que determinado cliente permaneceu no
centro, diga a quantia que deve ser paga.
4. Ler um valor em segundos e mostrar esse valor no formato HH:MM:SS.
5. Descreva um algoritmo que, dado o raio de uma esfera, calcula o seu volume.
Considere o valor de ? = 3.1415. (V = 4/3? R3 ).
6. Ler um número e calcular o seu módulo.
Aulas Práticas
Pag 1/1
Programação I – Electrónica e Computadores – 2003/2004
Ficha 2
Noção de repetição em algoritmia
7. Descreva um algoritmo que mostre todos os anos bissextos entre 1900 e 2000.
Especifique as estruturas de dados necessárias à resolução do problema.
Note-se que um ano é bissexto se for divisível por 4, mas não por 100, excepto
se for divisível por 400. Por exemplo, 1900 não foi um ano bissexto (é divisível
por 4 mas é divisível por 100, sem o ser por 400), mas 2000 foi (é divisível por 4
e é divisível por 100 e também por 400).
8. Ler 100 números, determinar o maior, o menor e a média dos 100 números lidos.
Elabore o algoritmo.
9. Determinar o maior número de uma sequência de números lidos do teclado até
ser digitado o número zero.
10. Descreva um algoritmo para mostrar a tabuada de 1 a 10:
1x1=1
1x2=2
.
.
.
10x9=90
10x10=100
11. Descreva um algoritmo que, dados 2 números, mostre todos os números pares
do intervalo constituído pelos dois números, por ordem decrescente. Especifique
as estruturas de dados necessárias à resolução do problema.
12. Determinar quantos números são maiores que 100 numa sequência de números
lidos do teclado. O valor de N é definido pelo utilizador. Descreva o algoritmo.
Aulas Práticas
Pag 2/2
Programação I – Electrónica e Computadores – 2003/2004
Ficha 3
Programas simples em C
13. Ler 10 números e calcular a sua média.
14. Calcular ? (x+2)^2 para números compreendidos entre 5 e 10.
15. Indicar todos os números pares contidos num intervalo indicado pelo utilizador.
16. Escreva um programa que permita visualizar o código ASCII de todas as letras
minúsculas.
17. Verificar se numa sequência de 10 números de tamanho 4 introduzidos pelo
utilizador quantos são capicua.
Aulas Práticas
Pag 3/3
Programação I – Electrónica e Computadores – 2003/2004
Ficha 4
Programas simples em C
18. Elabore um programa em linguagem C que leia um número maior que 100 e
imprima o número de dígitos que o compõem.
19. Elabore um programa que, dado um número inteiro, mostre a soma dos dígitos que o
compõem.
20. Elabore um programa que leia um número e imprima quantos dígitos são iguais a
um dado dígito definido pelo utilizador.
21. Elabore um programa que leia um número e imprima o digito de maior ordem.
22. Elabore um programa que determine a soma de numeros pares e numeros impares.
A leitura devera ser feita ate ser introduzido 0.
Aulas Práticas
Pag 4/4
Programação I – Electrónica e Computadores – 2003/2004
Ficha 5
Decisão múltipla e repetição em C
23. Escreva um programa que permita inserir um número associado aos dias da
semana (1-7) e visualizar o nome do dia da semana correspondente.
24. Escreva um programa que simule uma calculadora simples com as quatro
operações aritméticas básicas (soma, subtracção, divisão e multiplicação).
25. Elabore um programa que, dado um número inteiro, mostre a soma dos dígitos
que o compõem.
26. Elabore um programa em linguagem C que leia um número maior que 100 e
imprima o número de dígitos que o compõem.
27. Elabore um programa que leia um número e imprima quantos dígitos são iguais
a um dado dígito definido pelo utilizador.
28. Escreva um programa que permita visualizar o código ASCII de todas as letras
minúsculas.
29. Elabore um programa que leia um número e imprima o digito de maior ordem.
Aulas Práticas
Pag 5/5
Programação I – Electrónica e Computadores – 2003/2004
Ficha 6
Funções em C
30. Escrever uma função que determine se um numero e par ou impar (os números a
verificar pertencem a uma lista indeterminada de valores que terminam com o
valor 0.
31. Verificar se dados 3 números eles seguem a regra n1=3+N2 e N2=(5*N3)-1.
32. Criar uma função que dado o ordenado mensal e o imposto a pagar por mês,
calcule o total de impostos a pagar no fim do ano.
33. Escreva uma função que determina o tamanho (nº de digitos) de um numero.
34. Determinar os diferentes valores que a expressão 3*x + x! toma entre 1 e 10
usando uma função para determinar o factorial.
Aulas Práticas
Pag 6/6
Programação I – Electrónica e Computadores – 2003/2004
Ficha 7
Funções em C
35. Escreva uma função que calcule o factorial de um número. A função a construir
deve receber um único parâmetro que lhe é passado por valor (o número para o
qual vai calcular-se o factorial) e deve retornar um valor do tipo double, que será
o factorial do número.
Dever-se-á escrever um programa que teste a função acima.
36. Escreva uma função que calcula o factorial de um número e que recebe dois
parámetros: um passado por valor que será o número para o qual se deseja
calcular o factorial, e outro que será passado por referência que vai permitir à
função devolver o valor do factorial do número.
37. Escreva uma função que imprima os n primeiros números da sequência de
Fibonacci (0,1,1,2,3,5,8,13,...). Os dois primeiros elementos da sequência são o
0 e o 1, e todos os outros elementos são obtidos pela soma dos dois elementos
anteriores. Teste a função.
38. Escreva uma função que determine a quantia que uma pessoa tem n anos após
ter depositado uma quantia q num banco, sabendo que a taxa de juros líquida é j
e que, no final de cada ano, os juros recebidos são acumulados à quantia
depositada. Teste a função.
39. Escreva uma função que calcule , para um dado número inteiro N (N>0), o cubo
de N, segundo o teorema de Nicomachus, que diz o seguinte:
13 =1
23 =3+5
33 =7+9+11
43 =13+15+17+19
...
Escreva um programa que teste a função.
Aulas Práticas
Pag 7/7
Programação I – Electrónica e Computadores – 2003/2004
40. Recentemente realizou-se uma experiência para se determinar o valor da
aceleração da gravidade em determinada localidade. Deixou-se cair uma bola, a
partir do repouso, do topo de vários edifícios, tendo-se registado o tempo que a
bola demorou a atingir o solo em cada caso. Foram realizadas 5 medidas:
Altura do prédio (m)
Tempo que demorou a atingir o chão (s)
69
3.74
114
4.84
216
6.64
129
5.13
48
3.11
Elabore um programa para calcular a aceleração da gravidade g, a partir destes
dados, utilizando a fórmula:
y=½gt2
y=distância percorrida pela bola
t=tempo gasto
Deve ser considerado como valor de g, a média aritmética dos valores obtidos
através das 5 medidas efectuadas. Devem ser lidas os dados referentes às 5
medidas e deve ser mostrado o valor de g calculado.
Escreva uma função que calcule o valor da aceleração da gravidade e teste a
função.
Aulas Práticas
Pag 8/8
Programação I – Electrónica e Computadores – 2003/2004
55.
Ficha 8
Vectores em C
41. Calcular o somatório de um vector.
42. Determinar o elemento máximo de um vector e em que posição se encontra.
43. Ordenar de forma decrescente um vector.
44. Determinar quantos elementos de um vector são pares.
45. Converter um numero binário de tamanho 8 contido num vector para base 10.
46. Somar dois vectores de tamanho 10.
Aulas Práticas
Pag 9/9
Programação I – Electrónica e Computadores – 2003/2004
Ficha 9
Vectores em C (continuação)
47. Escreva um programa com:
a. Uma função que faça a leitura de 10 números e guarde-os em memória
RAM. Estes 10 números deverão ser conhecidos na função principal do
programa.
b. Uma função que, dos 10 números lidos, mostre todos os que são maiores
que os seus vizinhos.
c. Uma função que retorne a maior diferença absoluta entre dois números
consecutivos. Também deverá retornar a posição destes dois números
onde existe a maior diferença.
d. Uma função que retorne a média dos 10 números.
e. Uma função que retorne a mediana dos 10 números. Mediana é o valor
central de uma série de números. Quando existe um número par de
elementos, define-se mediana como a média dos dois números centrais.
O programa deverá testar as funções escritas.
Aulas Práticas
Pag 10/10
Programação I – Electrónica e Computadores – 2003/2004
Ficha 10
Matrizes
49. Determinar a soma de todas as colunas de uma matriz.
50. Determinar a soma da diagonal principal de uma matriz.
51. Multiplicar duas matrizes.
52. Verificar se duas matrizes são iguais.
53. Dada uma matriz 5x10 em que as linhas correspondem a cadeiras e as colunas
aos números dos alunos determinar qual o aluno com a melhor nota, a média das
notas, a média dos alunos, a média de cada aluno.
54. Crie um jogo do galo.
55. Elabore um programa que:
?? preencha com números inteiros lidos do teclado as L linhas e C colunas de
uma matriz M (com L+1 linhas e C+1 colunas), em que L e C são também
pedidos ao utilizador:
?? coloque na coluna C+1 a soma dos valores de cada linha L e na linha L+1
a soma dos elementos de cada coluna C.
?? coloque na célula M?L+1,C+1?, o
somatório dos elementos da diagonal
principal da matriz.
(a matriz tem de ser quadrada!!!!!)
56. Dada uma matriz NOTA cujo elemento NOTA?i??j? contém a nota obtida pelo
estudante i no problema j em percentagem, e um vector peso cujo elemento
PESO?j? indica o peso do problema j na nota final, pretende-se a escrita de um
programa que realize as seguintes tarefas:
?? ler a matriz NOTA
?? ler vector PESO
?? calcular a nota final de cada aluno e armazenar na matriz CLASSIF com
duas colunas e em que a primeira contém o número do aluno e a segunda
tem a sua nota final
?? calcular a média das notas
?? calcular o n.º de alunos que obtiveram a nota X
?? determinar os alunos que obtiveram a nota X
Aulas Práticas
Pag 11/11
Programação I – Electrónica e Computadores – 2003/2004
Ficha 10
Manutenção de Strings
57. Ler uma linha de texto, contar os espaços em branco e substituir múltiplas
ocorrências de espaços em branco por um só.
58. Ler uma linha de texto e contar as palavras que ela contém.
59. Ler uma linha de texto e volte a escrevê-la por ordem inversa.
60. Escreva um programa que leia uma palavra e uma linha e indique se a palavra está
contida na linha.
61. Sugestão: usar strncmp() para compara a palavra com cada palavra da string.
62. Ler dois números binários em formato de string, e apresente o resultado da sua
soma.
Sugestão: Converta cada um para decimal, efectue a operação e converta novamente
para binário; Comece por escrever duas funções decbin() e bindec().
63. Escreva uma função que leia uma série de linhas de texto e escreve a linha maior.
64. Sejam NOME e SEXO dois vectores contendo os nomes e sexo de cada membro
de um clube de jovens. Masculino e feminino são indicados por ‘M’ e ‘F’
respectivamente. Pretende-se um programa que cria dois novos vectores,
MASCULINO e FEMININO, tais que o vector MASCULINO contenha os nomes
de todos os indivíduos masculinos e FEMININO contenha os nomes de todos os
elementos femininos.
Escreva um programa que realize as seguintes tarefas:
?? Ler os vectores NOME e SEXO;
?? Criar os novos vectores MASCULINO e FEMININO;
?? Ordenar por ordem alfabética os vectores MASCULINO E FEMININO;
?? Escrever os vectores;
?? Pesquisar os vectores, de tal forma que, dado o nome de um jovem o
programa responder se é masculino ou feminino
Nota: definir funções para cada uma das tarefas.
Aulas Práticas
Pag 12/12
Programação I – Electrónica e Computadores – 2003/2004
Aulas Práticas
Pag 13/13
Download

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