Escolar Documentos
Profissional Documentos
Cultura Documentos
Tópicos:
1. Aplicações das estruturas em programas-fonte C
2. Aplicações com algoritmos básicos.
3. Dicionário de dados
4. Plano de teste
5. Descrição linha a linha
6. Imagens da execução de programas
7. Fluxograma.
8. 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
Exemplos
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
Processo
Variável Descrição Tipo de Dado Valor Inicial
(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
Plano de Teste
Programa-fonte
#include <stdio.h>
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
Processo
Variável Descrição Tipo de Dado Valor Inicial
(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 2345
2 8 345678
0 9 123456789
1 1
4 5 5
5 4
Programa-fonte
#include <stdio.h>
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;
}
Somando Parcelas
6
xi
Elabore um programa que calcule e informe o valor da série S=∑ , para x = 2. O
i=1 i
programa deve ainda indicar quantos termos da série foram usados.
Dicionário de Dados
Processo
Variável Descrição Tipo de Dado Valor Inicial
(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
Imagem da execução
Prevendo o Salário
Dicionário de Dados
Processo
Variável Descrição Tipo de Dado Valor Inicial
(E/P/S)
Ano Ano int 2016 (for) P
Salario Salario float 5000,00 P, S
Aumento Aumento = 2*Aumento float 1.5/100 P
Plano de Teste
#include <stdio.h>
Ano = 2015;
Salario = 5000.00;
Aumento = 1.5/100.0;
return 0;
}
Imagem da execução
Desenhando Padrões
#####################
########## ##########
######### #########
######## ########
####### #######
###### ######
##### #####
#### ####
### ###
## ##
# #
Pensamento Computacional
A solução geral é para qualquer número de linhas e qualquer número de colunas. 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.
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
# | #
Programa-fonte
#include <stdio.h>
#define NL 10
#define NC 2*NL
Imagem da execução
Atividade 1
Visualize os algoritmos dos Exemplos no C Tutor e observe a mudança dos valores das
variáveis a cada ciclo da estrutura de iteração.
Atividade 2
Atividade 3
Exercícios
• dicionário de dados
• plano de teste
• programa-fonte
• fluxograma
• descrição linha a linha
• saída formatada
• imagem da execução do programa1
• falta de indentação anula o exercício
Desafio
1. 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?
2. 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.
3. O número 3025 possui a seguinte característica: 30 + 25 = 55 e 55 2 = 3025. Escreva
um programa que escreva todos os números com quatro algarismos que possuem a
citada característica.
4. 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
5. 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
Relatório 1 2 3 4 5 6 7 8 9 10 11 12 13
Valor 10 10 10 10 10 10 10 10 10 10 10 10 10
Peso 1 2 2 2 3 3 3 4 4 4 5 5 5
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 8 – Sub-rotinas
Capítulo 9 – Manipulando cadeias de caracteres
Capítulo 13 – Desafios
Relatório individual.
Colegiado de Engenharia da Computação
Universidade Federal do Vale do São Francisco
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
Relatório individual.