Prévia do material em texto
Colegiado de Engenharia da Computação
Universidade Federal do Vale do São Francisco
Relatório individual.
CCMP0016 - Algoritmo e Programação
Aula de Laboratório 05
Tópicos:
Algoritmos básicos – Parte 1.
Dicionário de dados
Plano de testes
Descrição linha a linha
Elaboração de Fluxogramas
Relatório 5.
Livro Texto: Fundamentos da Programação de Computadores
Capítulo 3 – Estrutura sequencial
Capítulo 4 – Estrutura condicional
Capítulo 5 – Estrutura de repetição
Exemplo
Mudanças e Variações
Antônio tem 1,50 m e cresce 2 cm por ano, enquanto José tem 1,30 m e cresce 4 cm por ano. Faça um programa para calcular e imprimir quantos anos são necessários para que José seja maior do que Antônio.
Dicionário de Dados
Variável
Descrição
Tipo de Dado
Valor Inicial
Processo (E/P/S)
AlturaAntonio
Altura de Antônio
float
1.50
E, P
VarAltAntonio
Crescimento Anual de Antônio
float
0.02
E
AlturaJose
Altura de José
float
1.30
E, P
VarAltJose
Crescimento Anual de José
float
0.04
E
Ano
Ano
int
0
P, S
Plano de Teste
AlturaAntonio
AlturaJose
Ano
1,50
1,30
0
1,52
1,34
1
1,54
1,38
2
1,56
1,42
3
1,58
1,46
4
1,60
1,50
5
1,62
1,54
6
1,64
1,58
7
1,66
1,62
8
1,68
1,66
9
1,70
1,70
10
1,72
1,74
11
Programa-fonte
#include <stdio.h>
#define VarAltAntonio 0.02
#define VarAltJose 0.04
int main( void ){
int Ano = 0;
float AlturaAntonio = 1.50,
AlturaJose = 1.30;
while( AlturaAntonio > AlturaJose ){
AlturaAntonio = AlturaAntonio + VarAltAntonio;
AlturaJose = AlturaJose + VarAltJose;
Ano = Ano + 1;
}
printf( "\n José fica maior do que Antônio no ano %d: ", Ano );
return 0;
}
Solução com abreviações:
#include <stdio.h>
#define VarAltAntonio 0.02
#define VarAltJose 0.04
int main( void ){
int Ano = 0;
float AlturaAntonio = 1.50,
AlturaJose = 1.30;
while( AlturaAntonio > AlturaJose ){
AlturaAntonio += VarAltAntonio;
AlturaJose += VarAltJose;
Ano++;
}
printf( "\n José fica maior do que Antônio no ano %d: ", Ano );
return 0;
}
Execute este programa no C Tutor e compreenda o seu fluxo de controle.
Lendo do Teclado
Faça um programa que leia um número não determinado de pares de valores [m,n], todos inteiros e positivos, um par de cada vez, e que mostre todos os números inteiros entre m e n (inclusive). A digitação de pares terminará quando m for maior do que n.
Dicionário de Dados
Variável
Descrição
Tipo de Dado
Valor Inicial
Processo (E/P/S)
m
Valor de m
int
input
E, P
n
Valor de n
int
input
E, P
i
Variável auxiliar
int
-
P
Plano de Teste
m
n
Saída
1
5
2 3 4 5
2
8
3 4 5 6 7 8
0
9
1 2 3 4 5 6 7 8 9
1
1
4
5
5
5
4
Programa-fonte
#include <stdio.h>
int main( void ){
int m, n;
printf( "Digite os valores de m e n: " );
scanf("%d %d", &m, &n );
while( m <= n ){
int i = m + 1;
printf( "\n Valores entre %d e %d: ", m, n );
while( i <= n ){
printf( " %d ", i );
i++;
}
printf( "\n\n Digite os valores de m e n: " );
scanf("%d %d", &m, &n );
}
return 0;
}
Refaça este programa usando a estrutura for.
Somando Parcelas
Elabore um programa que calcule e informe o valor da sériefórmula, para x = 2. O programa deve ainda indicar quantos termos da série foram usados.
Dicionário de Dados
Variável
Descrição
Tipo de Dado
Valor Inicial
Processo (E/P/S)
i
contador
int
1
P,S
x
Constante da série
double
2.0
E
parcela
Parcela = pow(x,i)/i
double
-
P
S
Acumulador
double
0.0
P,S
Plano de Teste
i
x
parcela
S
2.0
0.000000
1
parcela = pow(2,1)/1 = 2.000000
S = 0.000000 + 2.000000 = 2.000000
2
parcela = pow(2,2)/2 = 2.000000
S = 2.000000 + 2.000000 = 4.000000
3
parcela = pow(2,3)/3 = 2.666667
S = 4.000000 + 2.666667 = 6.666667
4
parcela = pow(2,4)/4 = 4.000000
S = 6.666667 + 4.000000 = 10.666667
5
parcela = pow(2,5)/5 = 6.400000
S = 10.666667 + 6.400000 = 17.066667
6
parcela = pow(2,6)/6 = 10.666667
S = 17.066667 + 10.666667 = 27.733333
Programa-fonte
#include <stdio.h>
#include <math.h> // pow
int main( void ){
int i;
double x = 2.0, parcela, S = 0.0;
for( i = 1; i <= 6; i++ ){
parcela = pow(x,i)/i;
S += parcela;
}
printf( "\n i = %d S = %lf", i-1, S );
return 0;
}
Imagem da execução
Refaça este programa usando a estrutura while o tipo float.
Execute este programa no C Tutor e avalie Plano de Teste.
Prevendo o Salário
Um funcionário de uma empresa recebe aumento salarial anualmente. Faça um programa que determine o salário atual desse funcionário sabendo que:
esse funcionário foi contratado em 2015, com salário inicial de $ 5.000,00
em 2016, ele recebeu o aumento de 1,5% sobre seu salário inicial
a partir de 2017 (inclusive), os aumentos salariais sempre corresponderam ao dobro do percentual do ano anterior.
Dicionário de Dados
Variável
Descrição
Tipo de Dado
Valor Inicial
Processo (E/P/S)
Ano
Ano
int
2016 (for)
P
SalarioInicial
Salario Inicial
float
5000,00
E
Salario
Salario
float
SalarioInicial
P, S
Aumento
Aumento = 2*Aumento
float
1.5/100
P
Plano de Teste
Ano
SalarioInicial
Aumento
Salário
2015
5000
0
5000,00*(1+0,000) = 5000,00
2016
1,5/100
5000,00*(1+0,015) = 5075,00
2017
3,0/100
5000,00*(1+0,030) = 5150,00
2018
6,0/100
5000,00*(1+0,060) = 5300,00
2019
12,0/100
5000,00*(1+0,120) = 5600,00
2020
24,0/100
5000,00*(1+0,240) = 6200,00
2021
48,0/100
5000,00*(1+0,480) = 7400,00
#include <stdio.h>
int main( void ){
int Ano;
float SalInicial, Salario, Aumento;
Ano = 2015;
SalInicial = 5000.00;
Aumento = 1.5/100.0;
printf( "\n Ano Salário($) " );
printf( "\n -----------------" );
printf( "\n %4d %9.2f", Ano, SalInicial );
for( Ano = 2016; Ano < 2022; Ano++ ){
Salario = SalInicial * ( 1.0 + Aumento );
Aumento *= 2.0;
printf( "\n %4d %9.2f", Ano, Salario );
}
printf( "\n -----------------" );
return 0;
}
Desenhando Padrões
Desenhe o padrão abaixo usando for:
#####################
########## ##########
######### #########
######## ########
####### #######
###### ######
##### #####
#### ####
### ###
## ##
# #
Pensamento Computacional
Sejam NL (número de linhas) e NC (número de linhas), neste caso NL = 10 e NC = 20.
Pode-se observar a simetria em relação à coluna central NC/2.
Caracteres '#' e espaço em branco ' '
c
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
l
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
#
0
#
#
#
#
#
#
#
#
#
#
|
#
#
#
#
#
#
#
#
#
#
1
#
#
#
#
#
#
#
#
#
|
#
#
#
#
#
#
#
#
#
2
#
#
#
#
#
#
#
#
|
#
#
#
#
#
#
#
#
3
#
#
#
#
#
#
#
|
#
#
#
#
#
#
#
4
#
#
#
#
#
#
|
#
#
#
#
#
#
5
#
#
#
#
#
|
#
#
#
#
#
6
#
#
#
#
|
#
#
#
#
7
#
#
#
|
#
#
#
8
#
#
|
#
#
9
#
|
#
10
O padrão da esquerda diminui o número de '#' (alinhado à esquerda), de 1 em 1 à medida que a linha aumenta de 1 em 1. Para linha:
para l = 0 desenha-se NC/2 '#' seguido 0 ' '
para l = 1 desenha-se NC/2-1 '#' seguido 1 ' '
para l = 2 desenha-se NC/2-2 '#' seguido 2 ' '
...
Pode-se pensar no algoritmo para o padrão da esquerda:
for( l = 0; l < NL; l++ ){
for( c = 0; c < NC; c++ ){
if( c < NC/2-l ) printf("#");
else printf(" ");
O padrão da direita diminui o número de # (alinhado à direita), de 1 em 1 à medida que a linha aumenta de 1 em 1. Para linha:
para l = 0 desenha-se NC/2+1 ' ' seguido de NC/2 '#'
para l = 1 desenha-se NC/2+2 ' ' seguido de NC/2-1 '#'
para l = 2 desenha-se NC/2+3 ' ' seguido de NC/2-2 '#'
...
Pode-se pensar no algoritmo para o padrão da direita:
for( l = 0; l < NL; l++ ){
for( c =0; c < NC; c++ ){
if( c > l+NC/2-1 ) printf("#");
else printf(" ");
Juntando os dois padrões:
for( l = 0; l < NL; l++ ){
for( c = 0; c < NC; c++ ){
if( c < NC/2-l || c > l+NC/2-1 ) printf("#");
else printf(" ");
Programa-fonte
Número de linhas => NL = 10
Número de colunas => NC = 2*NL
variável para linha => l (l vai varia de 0 (l = 0) a 10 (l < 11)
variável para coluna => c (c vai varia de 0 (c = 0) a 20 (c < 21)
#include <stdio.h>
#define NL 10
#define NC 2*NL
int main( void ){
int l, c;
for( l = 0; l < NL; l++ ){
for( c = 0; c < NC; c++ ){
if( (c < NC/2-l) || (c > l+NC/2-1) ) printf("#");
else printf(" ");
}
printf("\n");
}
return 0;
}
Imagem da execução
Execute este programa no C Tutor e compreenda o seu fluxo de controle.
Refaça este programa usando a estrutura while.
Atividade 1
Visualize os algoritmos do Exemplo no C Tutor e observe a mudança dos valores das variáveis a cada ciclo do for.
Atividade 2
Leia os links abaixo:
C for Loop statement
break and continue
switch case statement
C while Loop statement
https://en.cppreference.com
Estude os exemplos dos links abaixo:
C Program to print fibonacci series
C Program to generate multiplication table
C Program to count number of digits in given number
C Program to reverse number
C Program to find GCD of two numbers, greatest common divisor (GCD)
C Program to find LCM of two numbers, Least Common Multiple (LCM)
C Program to display factors of number
C Program to find minimum numbers from entered numbers
C Program to find maximum numbers from entered numbers
Atividade 3
Estude o Capítulo 5 – Estruturas de repetição
Capítulo 5 → Estude os exercícios resolvidos
Capítulo 5 → Faça os exercícios propostos
Exercícios
Faça um programa que receba o valor de um carro e mostre uma tabela com os seguintes dados: preço final, quantidade de parcelas e valor da parcela. Considere o seguinte:
o preço final para compra à vista tem desconto de 20%
o número de parcelas varia de 6 a 60; e
o percentual de acréscimo, em %, é a metade do número de parcelas.
Faça um programa que receba o valor do salário-mínimo, uma lista contendo a quantidade de quilowatts gasta por consumidor e o tipo de consumidor (1 — residencial; 2 — comercial; ou 3 — industrial) e que calcule e mostre:
o valor de cada quilowatt, sabendo que o quilowatt custa um 0,1% do salário-mínimo;
o valor a ser pago por consumidor (conta final mais acréscimo). O acréscimo encontra-se na tabela a seguir:
Tipo
% de acréscimo sobre o valor gasto
1
5
2
10
3
15
Escreva um programa que leia 10 valores de x. Para cada valor lido, calcule o valor de y dado pela fórmula y = 2.5*cos |x/2|. Imprima os pares de valores x e y.
Escreva um programa que leia um número inteiro positivo N e em seguida imprima N linhas do chamado triângulo de Floyd:
1
2 3
4 5 6
7 8 9 10
11 12 13 14 15
16 17 18 19 20 21
Escreva um programa que leia um número inteiro positivo N e em seguida imprima N linhas do chamado triângulo de Floyd invertido:
1
3 2
6 5 4
10 9 8 7
15 14 13 12 11
21 20 19 18 17 16
Uma livraria está fazendo uma promoção para pagamento à vista em que o comprador pode escolher entre dois critérios de desconto. Critério A: $ 0,25 por livro + $ 7,50 fixo e Critério B: $ 0,50 por livro + $ 2,50 fixo. Faça um programa em que o usuário digite a quantidade de livros que deseja comprar e o programa diga qual é a melhor opção de desconto.
Faça um programa que receba o salário de um funcionário chamado Carlos. Sabe–se que outro funcionário, João, tem salário equivalente a um terço do salário de Carlos. Carlos aplicará seu salário integralmente em um fundo que rende 2% ao mês, e João aplicará seu salário integralmente em um outro fundo que rende 3% ao mês. O programa deverá calcular e mostrar a quantidade de meses necessários para que o montante de João iguale ou ultrapasse o montante de Carlos.
Dois automóveis estão distantes 80 km um do outro em uma grande reta. Se um vai em direção ao outro com velocidades de 50 e 60 km/h, faça um programa para calcular onde e quanto tempo demoram para se encontrarem.
Faça um programa que leia um número de termos, determine e mostre os valores de acordo com a série 2, 7, 3, 4, 21, 12, 8, 63, 48, 16, 189, 192, 32, 567, 768 …
Faça um programa que calcule o saldo de uma conta bancária tendo como entrada o saldo inicial e dez lançamentos de operações de crédito e/ou débito. A saída são o total de créditos, o total de débitos, os juros pagos ao banco (5% do total de débitos) e o saldo final.
Uma companhia de teatro deseja montar uma série de espetáculos. A direção calcula que, a $ 5,00 o ingresso, serão vendidos 120 ingressos, e que as despesas serão de $ 200,00. Diminuindo-se em $ 0,50 o preço dos ingressos, espera-se que as vendas aumentem em 26 ingressos. Faça um programa que escreva uma tabela de valores de lucros esperados em função do preço do ingresso, fazendo-se variar esse preço de $ 5,00 a $ 1,00, de $ 0,50 em $ 0,50. Escreva, ainda, para cada novo preço de ingresso, o lucro máximo esperado, o preço do ingresso e a quantidade de ingressos vendidos para a obtenção desse lucro.
Faça um programa que receba a idade de oito pessoas, calcule e mostre:
a quantidade de pessoas em cada faixa etária;
a porcentagem de pessoas na primeira faixa etária com relação ao total de pessoas.
a porcentagem de pessoas na última faixa etária com relação ao total de pessoas
faixa etária
idade
1a
Até 15 anos
2a
De 16 a 30 anos
3a
De 31 a 45 anos
4a
De 46 a 60 anos
5a
Acima de 60 anos
Uma loja utiliza o código V para transação à vista e P para transação a prazo. Faça um programa que receba o código e o valor de quinze transações, calcule e mostre:
o valor total das compras à vista;
o valor total das compras a prazo;
o valor total das compras efetuadas; e
o valor da primeira prestação das compras a prazo juntas, sabendo-se que serão pagas em três vezes.
Faça um programa que receba a idade, a altura e o peso de cinco pessoas, calcule e mostre:
a quantidade de pessoas com idade superior a 50 anos;
a média das alturas das pessoas com idade entre 10 e 20 anos;
a porcentagem de pessoas com peso inferior a 40 kg entre todas as pessoas analisadas.
Faça um programa que receba a idade, o peso, a altura, a cor dos olhos (A — azul; P — preto; V — verde; e C — castanho) e a cor dos cabelos (P — preto; C — castanho; L — louro; e R — ruivo) de seis pessoas, e que calcule e mostre:
a quantidade de pessoas com idade superior a 50 anos e peso inferior a 60 kg;
a média das idades das pessoas com altura inferior a 1,50 m;
a porcentagem de pessoas com olhos azuis entre todas as pessoas analisadas; e
a quantidade de pessoas ruivas e que não possuem olhos azuis.
Faça um programa que receba dez idades, pesos e alturas, calcule e mostre:
a média das idades das dez pessoas;
a quantidade de pessoas com peso superior a 90 kg e altura inferior a 1,50 metro; e
a porcentagem de pessoas com idade entre 10 e 30 anos entre as pessoas que medem mais de 1,90 m.
Faça um programa que receba o valor de um carro e mostre uma tabela com os seguintes dados: preço final, quantidade de parcelas e valor da parcela. Considere o seguinte:
o preço final para compra à vista tem desconto de 20%;
a quantidade de parcelas pode ser: 6, 12, 18, 24, 30, 36, 42, 48, 54 e 60; e
os percentuais de acréscimo encontram-se na tabela a seguir.
quantidade de parcelas
percentual de acréscimo sobre o preço final (%)
6
3
12
6
18
9
24
12
30
15
36
18
42
21
48
24
54
27
60
30
Faça um programa que receba a idade e o peso de quinze pessoas, e que calcule e mostre as médias e os máximos dos pesos das pessoas da mesma faixa etária. As faixas etárias são: de 1 a 10 anos, de 11 a 20 anos, de 21 a 30 anos e de 31 anos para cima.
Cada espectador de um cinema respondeu a um questionário no qual constava sua idade e sua opinião em relação ao filme: ótimo — 3;bom — 2; regular — 1. Faça um programa que receba a idade e a opinião de quinze espectadores, calcule e mostre:
a média das idades das pessoas que responderam ótimo;
a quantidade de pessoas que responderam regular; e
a percentagem de pessoas que responderam bom, entre todos os espectadores analisados.
Uma empresa fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado. Para isso, forneceu o sexo do entrevistado e sua resposta (S — sim; ou N — não). Sabe-se que foram entrevistadas dez pessoas. Faça um programa que calcule e mostre:
o número de pessoas que responderam sim;
o número de pessoas que responderam não;
o número de mulheres que responderam sim; e
a percentagem de homens que responderam não, entre todos os homens analisados.
Foi feita uma pesquisa sobre a audiência de canal de TV em várias casas de uma cidade, em determinado dia. Para cada casa consultada foi fornecido o número do canal (4, 5, 7, 12) e o número de pessoas que estavam assistindo àquele canal. Se a televisão estivesse desligada, nada era anotado, ou seja, essa casa não entrava na pesquisa. Faça um programa que:
leia um número indeterminado de dados (número do canal e número de pessoas que estavam assistindo); e
calcule e mostre a porcentagem de audiência de cada canal.
Para encerrar a entrada de dados, digite o número do canal ZERO.
Foi feita uma pesquisa entre os habitantes de uma região. Foram coletados os dados de idade, sexo (M/F) e salário. Faça um programa que calcule e mostre:
a média dos salários do grupo;
a maior e a menor idade do grupo;
a quantidade de mulheres com salário até $ 200,00;
a idade e o sexo da pessoa que possui o menor salário.
Finalize a entrada de dados ao ser digitada uma idade negativa.
Faça um programa que apresente o menu de opções a seguir:
Menu de opções:
1. Média aritmética
2. Média ponderada
3. Sair
Digite a opção desejada.
Na opção 1: receber duas notas, calcular e mostrar a média aritmética.
Na opção 2: receber três notas e seus respectivos pesos, calcular e mostrar a média ponderada.
Na opção 3: sair do programa.
Verifique a possibilidade de opção inválida. Nesse caso, o programa deverá mostrar uma mensagem.
Em uma eleição presidencial existem quatro candidatos. Os votos são informados por meio de código. Os códigos utilizados são:
1, 2, 3, 4
Votos para os respectivos candidatos
5
Voto nulo
6
Voto em branco
Faça um programa que calcule e mostre:
o total de votos para cada candidato;
o total de votos nulos;
o total de votos em branco;
a porcentagem de votos nulos sobre o total de votos; e
a porcentagem de votos em branco sobre o total de votos.
Para finalizar o conjunto de votos, tem-se o valor zero e, para códigos inválidos, o programa deverá mostrar uma mensagem.
Faça um programa que apresente o menu de opções a seguir, que permita ao usuário escolher a opção desejada, receba os dados necessários para executar a operação e mostre o resultado. Verifique a possibilidade de opção inválida e não se preocupe com as restrições como salário inválido.
Menu de opções:
1 - Novo salário
2 - Férias
3 - Décimo terceiro
4 - Sair
Digite a opção desejada.
Na opção 1: receber o salário de um funcionário, calcular e mostrar o novo salário usando as regras a seguir:
Salários
Porcentagem de aumento (%)
Até $ 210,00
15
De $ 210,00 a $ 600,00 (inclusive)
10
Acima de $ 600,00
5
Na opção 2: receber o salário de um funcionário, calcular e mostrar o valor de suas férias. Sabe-se que as férias equivalem a seu salário acrescido de um terço do salário.
Na opção 3: receber o salário de um funcionário e o número de meses de trabalho na empresa, no máximo doze, calcular e mostrar o valor do décimo terceiro. Sabe-se que o décimo terceiro equivale a seu salário multiplicado pelo número de meses de trabalho dividido por 12.
Na opção 4: sair do programa.
Faça um programa que receba um conjunto de valores inteiros e positivos, calcule e mostre o maior e o menor valor do conjunto. Considere que:
para encerrar a entrada de dados, deve ser digitado o valor zero;
para valores negativos, deve ser enviada uma mensagem;
os valores negativos ou iguais a zero não entrarão nos cálculos.
Foi realizada uma pesquisa em Porto Alegre, com um número desconhecido de pessoas. De cada entrevistado foram colhidos os seguintes dados:
qual seu clube de futebol de preferência (1-Grêmio; 2-Internacional; 3-Outros)
qual seu salário
qual a sua cidade natal (0-Porto Alegre; 1-Outras)
Escreva um programa que informe:
número de torcedores por clube
média salarial dos torcedores do Grêmio e do Internacional
número de pessoas nascidas em Porto Alegre que não torcem por qualquer dos dois primeiros clubes
número de pessoas entrevistadas
Uma agência bancária possui vários clientes que podem fazer investimentos com rendimentos mensais, conforme a tabela a seguir:
tipo
descrição
rendimento mensal (%)
1
Poupança
1,5
2
Poupança plus
2,0
3
Fundos de renda fixa
4,0
Faça um programa que leia o código do cliente, o tipo do investimento e o valor investido, e que calcule e mostre o rendimento mensal de acordo com o tipo do investimento. No final, o programa deverá mostrar o total investido e o total de juros pagos. A leitura terminará quando o código do cliente digitado for menor ou igual a 0.
Imprima o padrão a, da figura abaixo, usando for.
Imprima o padrão b, da figura abaixo, usando for.
Imprima o padrão c, da figura abaixo, usando for.
Imprima o padrão d, da figura abaixo, usando for.
Imprima o padrão e, da figura abaixo, usando for.
Imprima o padrão r, da figura abaixo, usando for.
*
**
***
****
*****
******
*******
*
***
*****
*******
*********
***********
*************
*************
*
*************
*
*************
*
*************
(a)
(b)
(c)
7
7 6
7 6 5
7 6 5 4
7 6 5 4 3
7 6 5 4 3 2
7 6 5 4 3 2 1
1 2 3 4 5 6 7
2 3 4 5 6 7
3 4 5 6 7
4 5 6 7
5 6 7
5 6
6
*************
*
*************
* *
*************
* *
*************
(d)
(e)
(f)
Faça um programa em C para calcular valores da série fórmula, para x = 0.1.
Faça um programa em C para calcular valores da sériefórmula, para x = 0.75.
Faça um programa em C para calcular valores da sériefórmula, para x = 0.75.
Faça um programa em C para calcular valores da sériefórmula, para x = 0.5.
Faça um programa em C para calcular valores da sériefórmula, para x = 1.5.
Faça um programa em C para calcular valores da sériefórmula, para x = 1.5.
☠ Desafio ☠
Uma caixa d’água, de 1000 L está vazia, e começa a recebe água com vazão de 5 L/minuto. Faça um programa que calcule o tempo necessário para enchê–la sabendo que é feita uma descarga de 50 L a cada 30 minutos, uma lavagem de 100 L a cada 2 horas e que tem um furo que perde água com vazão de 0,01 L/s. Qual a percentagem de perdas de água? O que mudaria se consertasse o furo?
Escreva um programa que escreva todos os pares de números de dois algarismos que apresentam a seguinte propriedade: o produto dos números não se altera se os dígitos são invertidos. Por exemplo, 93 x 13 = 39 x 31 = 1209.
O número 3025 possui a seguinte característica: 30 + 25 = 55 e 552 = 3025. Escreva um programa que escreva todos os números com quatro algarismos que possuem a citada característica.
Uma empresa de telefonia adotou um sistema de cobrança cujo valor do minuto de uma ligação varia de acordo com o horário de início:
das 0h às 9h — 50% de desconto no valor do minuto.
das 9h01 às 18h — 0% de desconto no valor do minuto.
das 18h01 às 21h — 30% de desconto no valor do minuto.
das 21h01 às 23h59 — 40% de desconto no valor do minuto.
Faça um programa que receba o horário inicial (hora e minuto) e o horário final (hora e minuto), junto com o valor normalmente cobrado pelo minuto de uma ligação. De acordo com os dados anteriores, aplique corretamente os descontos e mostre o valor normal a ser cobrado e o valor com o desconto concedido.
Observação:Se a ligação começou em uma faixa de desconto e terminou em outra, você deverá calcular o desconto de acordo com o período de duração da ligação em cada faixa. Por exemplo, se uma ligação começou às 8h30 e terminou às 20h, você deverá conceder 50% de desconto para o período de 8h30 até as 9h, 0% de desconto para o período de 9h01 até as 18h e 30% de desconto para o período de 18h01 até as 20h
Dois números são considerados Amigáveis se um deles corresponder à soma dos divisores (exceto o próprio número) do outro.
Por exemplo: vamos analisar os números 8 e 10.
Os divisores de 8 são: 1, 2 e 4, resultando em soma igual a 7.
Já os divisores de 10 são: 1, 2 e 5, resultando em soma igual a 8.
Assim, como a soma dos divisores de 10 (exceto ele próprio) resulta em 8, pode-se dizer que os números 10 e 8 são amigáveis.
Criar um programa que receba dois números inteiros quaisquer e determine se são amigáveis ou não.
Fazer o Fluxograma, o Dicionário de Dados e o Plano de Teste ajuda a elaborar estes desafios?
Relatório 6
Faça o relatório formatado da resolução dos itens a e b dos Exercícios (programa-fonte, dicionário de dados, plano de teste, relatórios formatados, dividir para conquistar e imagens da execução).
Onde a = 1+ [1+N+(d*m)2] % N, b = 1+ [3+N*(d+m)] % N e c = 1+[5+(N+d)2+(N+m)2] % N, sendo d e m o dobro do dia e do mês do seu aniversário, respectivamente, e N o número de questões dos Exercícios.
Entrega via AVA nos formatos odt e pdf.
LibreOffice 7.4 ou superior.
Relatório
1
2
3
4
5
6
7
8
9
10
11
12
13
Σ
Valor
1
2
2
2
2
2
2
3
3
3
3
3
2
30
Tire suas Dúvidas
Informe sua dúvida para:
E-mail: ccmp0016.0@gmail.com
Assunto: [AP Dúvida]
Envie Sugestões
Envie sugestões para:
E-mail: ccmp0016.0@gmail.com
Assunto: [AP Sugestão]
Estude
Capítulo 1 – Conceitos Básicos
Capítulo 2 – Paradigma de programação
Capítulo 3 – Estrutura sequencial
Capítulo 4 – Estrutura condicional
Capítulo 5 – Estrutura de repetição
Capítulo 6 – Vetor
Capítulo 7 – Matriz
Capítulo 7 – Sub-rotinas
Capítulo 9 – Manipulando cadeias de caracteres
Capítulo 1 – Linguagem de Programação C – LPC
Capítulo 2 – Tipos de Dados Básicos
Capítulo 3 – Identificadores, Contantes e Variáveis
Capítulo 4 – Operações de Entrada e Saída (E/S)
Capítulo 5 – Operadores e Expressões
Capítulo 6 – Funções C
Capítulo 7 – Estruturas
Capítulo 8 – Tipos de Dados Derivados
Capítulo 9 – Resolvendo Problemas Usando Computadores
Capítulo 10 – Anexos
Capítulo 1 – Uma Visão Geral de C
Capítulo 2 – Expressões em C
Capítulo 3 – Comandos de Controle do Programa
Capítulo 4 – Matrizes e Strings
Capítulo 6 – Funções
Capítulo 8 – E/S pelo Console
Capítulo 1 – Introdução à Lógica de Programação
Capítulo 2 – Tópicos Preliminares
Capítulo 3 – Estruturas de Controle
Capítulo 4 – Estruturas de Dados
Capítulo 4 – Modularizando Algoritmos
Capítulo 1 – Introdução
Capítulo 2 – Fundamentos
Capítulo 3 – Comandos de Condição
Capítulo 6 – Recursividade
Capítulo 7 – Vetores
Capítulo 4 – Comandos de Repetição