Escolar Documentos
Profissional Documentos
Cultura Documentos
Tópicos:
1. Programação com uso de funções
2. Biblioteca Padrão C
3. Dicionário de dados
4. Plano de testes
5. Descrição linha a linha.
6. Relatório 7.
Livro Texto: Fundamentos da Programação de Computadores
Capítulo 8 – Sub-rotinas
Estudo de Casos
1. Crie uma função que receba três números inteiros como parâmetros, representando
horas (h), minutos (min) e segundos (s), e os converta em segundos. Exemplo: 2 h, 40 min e
10 s correspondem a 9.610 s.
Programa Fonte
#include <stdio.h>
#include <stdlib.h> // função exit - interrompe o programa e retorna código do erro
int Segundos( int x, int y, int z ); // protótipo da função
int main( void ){
int h, m, s, t;
printf( "Digite o valor das horas (0-23): " ); scanf( "%d", &h );
printf( "Digite o valor dos minutos (0-59): " ); scanf( "%d", &m );
printf( "Digite o valor dos segundos (0-59): " ); scanf( "%d", &s );
t = Segundos(h,m,s);
printf("\n %02d:%02d:%02d = %d s", h, m, s, t );
return 0;
}
int Segundos( int h, int m, int s ){
return 60*60*h + 60*m + s;
}
2. Faça uma função que receba um valor inteiro e positivo N, calcule e mostre os números
de Fibonacci de 1 até N, ambos incluídos.
Pensamento Computacional
{
0 , n=0
F (n)= 1 , n=1
F (n−1)+ F(n−2) , n>1
F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 F13 F14 F15 F16 F17 F18 F19 ...
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 ...
...
Programa Fonte
#include <stdio.h>
Combinação de m, n a n:
m!
C (m ,n)= ,m≥n
(m−n)!n!
0! = 1 // convenção matemática
1! = 1
2! = 1x2=2
3! = 1x2x3=6
5! = 120
n! = 1 x 2 x 3 x 4 x … x n // for resolve
8! 8×7×6×5!
C (8,5)= = =8×7=56
(8−5)!5! 6×5 !
#include <stdio.h>
Um número inteiro é primo n, n > 0, se ele é divisível apenas por 1 e por si mesmo.
Programa Fonte
#include <stdio.h>
#include <stdbool.h> // bool
5. Escreva uma função que receba um valor inteiro e o retorne invertido. Exemplo: a
entrada 123 produz a saída 321.
Solução 1
Pensamento Computacional 1
Seja n = 568, para decompor n em centenas, dezenas e unidades, basta fazer a divisão
inteira de n por 10 e 100.
Programa Fonte 1
#include <stdio.h>
i = 100*u + 10*d + c;
return i;
}
Solução 2
Pensamento Computacional 2
Seja n = 568, para decompor n em centenas, dezenas e unidades, basta fazer a divisão
inteira de n por 10 e 100.
Programa Fonte 2
#include <stdio.h>
u = n%10;
d = (n/10) % 10;
c = n/100;
i = 100*u + 10*d + c;
return i;
}
Atividades 1
1. Reescreva os Estudo de Casos utilizando while.
2. Execute cada Estudo de Casos no GDB online.
3. Execute cada Estudo de Casos no C Tutor, faça as adaptações necessárias.
4. Faça o fluxograma de cada Estudo de Casos.
5. Identifique o tipo, parâmetros e retorno de cada função dos programas do Estudo de
Casos.
6. Identifique os argumentos da chamada de cada função dos programas do Estudo de
Casos.
7. Faça a descrição linha a linha de cada programa do Estudo de Casos.
Atividades 2
Atividades 3
1. Functions Introduction
2. User-defined Function
3. Function Types
4. Scope of Variable
5. C Program to find factorial of number
6. C Program to print fibonacci series
7. C Program to find GCD of two numbers
8. C Program to find LCM of two numbers
9. C Program to calculate power of number
10. C Program to check whether given number if prime number or not
11. C Program to check whether given number is armstrong number or not
12. https://en.cppreference.com
Questões
1. O que é módulo?
2. O que é reutilização?
3. Como a modularização está relacionada com a reutilização?
4. O que é legibilidade?
5. Como a modularização está relacionada com a legibilidade?
6. O que é manutenção?
7. Como a modularização está relacionada com a manutenção?
8. O que é função?
9. O que é protótipo de função?
10. Compare função com protótipo de função.
11. Quando usar protótipo de função?
12. O que é parâmetro de função?
13. O que é argumento de função?
14. O que é tipo de retorno?
15. Como o tipo void está relacionado com função?
16. Qual é a sintaxe de função em C?
17. Qual é a sintaxe de protótipo de função C?
18. Explique o fluxo de controle de programas-fonte que contenham funções.
19. O que é chamada de função?
20. O que é passagem de argumentos?
21. O que é escopo de variável?
22. O que é variável local?
23. O que é variável global?
24. Explique detalhadamente a figura abaixo:
Capítulo 8 – Sub-rotinas
Capítulo 8 – Exercícios Resolvidos
Capítulo 8 – Exercícios Propostos (exceto vetores e matrizes)
Exercícios 1
• dicionário de dados
• plano de teste
• programa-fonte
• descrição linha a linha
• saída formatada
• imagem da execução do programa1
• falta de indentação anula o exercício
• apenas soluções usando funções serão consideradas (main de tamanho
mínimo)
• apenas soluções gerais serão consideradas
1. Faça uma função que receba um número inteiro e positivo N como parâmetro e
retorne a soma dos números inteiros existentes entre o número 1 e N (inclusive).
2. Faça uma função que receba um valor inteiro e verifique se ele é positivo ou negativo.
3. Crie uma função que receba como argumento a altura (h) e o sexo de uma pessoa e
retorne seu peso ideal. Para homens, deverá calcular o peso ideal usando a fórmula:
peso ideal = 72.7 h - 58; para mulheres: peso ideal = 62.1 h - 44.7.
4. Elabore uma função que leia um número não determinado de valores positivos e
retorne a média aritmética desses valores. Terminar a entrada de dados com o valor
zero.
5. Elabore uma função que receba como parâmetro um valor n (inteiro e maior ou igual a
1 1 1 1
1) e determine o valor da soma S=1+ + + +⋯+ .
2 3 4 n
6. Faça uma função que receba como parâmetro um valor inteiro e positivo n, indicando
1 1 1 1 1 1 1
a quantidade de parcelas, e retorne S=1+ + + + + + +⋯+ .
3 5 7 9 11 13 2n+ 1
7. A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados
sobre o salário e o número de filhos. Faça uma única função que leia esses dados para
um número não determinado de pessoas e imprima a média de salário da população,
a média do número de filhos, o maior salário e o percentual de pessoas com salário
inferior a $ 1.302,00.
8. Crie um programa que receba três valores (obrigatoriamente maiores que zero),
representando as medidas dos três lados de um triângulo. Todas as mensagens
deverão ser mostradas em main. Elabore funções para: a) determinar se esses lados
formam um triângulo (sabe–se que, para ser triângulo, a medida de um lado qualquer
deve ser inferior ou igual à soma das medidas dos outros dois); b) determinar e
mostrar o tipo de triângulo (equilátero, isósceles ou escaleno), caso as medidas
formem um triângulo.
9. Calcule e imprima o valor de n tal n! < 10000. Resolva usando função.
10. Calcule e imprima o valor de n tal F(n) < 100000, F de Fibonacci. Resolva usando
função.
11. Elabore e teste uma função que retorna o número de segundos de x horas.
12. Elabore e teste uma função para verificar se um ano é bissexto.
13. Elabore e teste uma função que retorna o número de dias um dado mês.
1 2 3 4 20
14. Elabore e teste uma função para calcular S= + + + +⋯+ .
1 3 5 7 39
15. Escreva uma função para somar os números de primos menores do que 1000.
m!
16. Escreva uma função para calcular o arranjo de m por n A m , n=
(m−n)!
17. Escreva uma função para calcular a potenciação x =
n 1
x⋅xn −1
se n=0
se n>0 {
18. Escreva uma função para calcular o fatorial x !=
1 se x≤1
x⋅(x−1)! se x >1 {
19. Escreva uma função para calcular a soma dos n primeiros números primos.
20. Faça uma função que receba um número inteiro e positivo N como parâmetro e
retorne a soma dos números inteiros existentes entre o número 1 e N (inclusive).
21. Faça uma função que receba um valor inteiro e verifique se ele é positivo ou negativo.
22. Crie uma função que receba como argumento a altura (h) e o sexo de uma pessoa e
retorne seu peso ideal. Para homens, deverá calcular o peso ideal usando a fórmula:
peso ideal = 72.7 h - 58; para mulheres: peso ideal = 62.1 h - 44.7.
23. Elabore uma função que leia um número não determinado de valores positivos e
retorne a média aritmética desses valores. Terminar a entrada de dados com o valor
zero.
24. Elabore uma função que receba como parâmetro um valor n (inteiro e maior ou igual a
1 1 1 1
1) e determine o valor da soma S=1+ + + +⋯+ .
2 3 4 n
25. Faça uma função que receba como parâmetro um valor inteiro e positivo n, indicando
1 1 1 1 1 1 1
a quantidade de parcelas de uma soma, e retorne S=1+ + + + + + +⋯+ .
3 5 7 9 11 13 2n+ 1
26. A prefeitura de uma cidade fez uma pesquisa entre seus habitantes, coletando dados
sobre o salário e o número de filhos. Faça uma única função que leia esses dados para
um número não determinado de pessoas e imprima a média de salário da população,
a média do número de filhos, o maior salário e o percentual de pessoas com salário
inferior a $ 1.302,00.
27. Crie um programa que receba três valores (obrigatoriamente maiores que zero),
representando as medidas dos três lados de um triângulo. Todas as mensagens
deverão ser mostradas em main. Elabore funções para: a) determinar se esses lados
formam um triângulo (sabe–se que, para ser triângulo, a medida de um lado qualquer
deve ser inferior ou igual à soma das medidas dos outros dois); b) determinar e
mostrar o tipo de triângulo (equilátero, isósceles ou escaleno), caso as medidas
formem um triângulo.
28. Calcule e imprima o valor de n tal n! < 10000. Resolva usando função.
29. Calcule e imprima o valor de n tal F(n) < 100000, F de Fibonacci. Resolva usando
função.
30. Elabore e teste uma função que retorna o número de segundos de x horas.
31. Elabore e teste uma função para verificar se um ano é bissexto.
32. Elabore e teste uma função que retorna o número de dias um dado mês.
1 2 3 4 20
33. Elabore e teste uma função para calcular S= + + + +⋯+ .
1 3 5 7 39
34. Escreva uma função para somar os números de primos menores do que 1000.
m!
35. Escreva uma função para calcular o arranjo de m por n A m , n=
(m−n)!
36. Escreva uma função para calcular a potenciação x =
n 1
x⋅xn −1
se n=0
se n>0 {
37. Escreva uma função para calcular o fatorial x !=
1 se x≤1
x⋅(x−1)! se x >1 {
Exemplos
1. Functions Introduction
2. User-defined Function
3. Function Types
4. Scope of Variable
5. C Program to find factorial of number
6. C Program to print fibonacci series
7. C Program to find GCD of two numbers
8. C Program to find LCM of two numbers
9. C Program to calculate power of number
10. C Program to check whether given number if prime number or not
11. C Program to check whether given number is armstrong number or not
12. https://en.cppreference.com
Desafio
Elabore uma sub-rotina que calcule o máximo divisor comum (MDC) de dois números
recebidos como parâmetros.
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
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
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.