Prévia do material em texto
RELATÓRIO DE PRÁTICA
Jonas Henrique Ferreira de Oliveira, 01562847
RELATÓRIO DE AULAS PRÁTICAS
ENSINO DIGITAL
RELATÓRIO
DATA:
______/______/______
RELATÓRIO DE AULAS PRÁTICAS: MÉTODOS COMPUTACIONAIS
DADOS DO(A) ALUNO(A):
NOME: Jonas Henrique Ferreira de Oliveira MATRÍCULA:01562847
CURSO:Engenhaira mecanica POLO:Lauro de Freitas, BA
PROFESSOR(A) ORIENTADOR(A): Adilson da Silva
ORIENTAÇÕES GERAIS:
O relatório deve ser elaborado individualmente e deve ser escrito de forma clara e
concisa;
O relatório deve conter apenas 01 (uma) lauda por tema;
Fonte: Arial ou Times New Roman (Normal e Justificado);
Tamanho: 12;
Margens: Superior 3 cm; Inferior: 2 cm; Esquerda: 3 cm; Direita: 2 cm;
Espaçamento entre linhas: simples;
Título: Arial ou Times New Roman (Negrito e Centralizado).
Atenção: desenvolva as respostas de maneira resumida, mas garanta que todo o conteúdo
necessário foi abordado. Para essa atividade é obrigatório a indicação de referência
bibliográfica.
RELATÓRIO:
ATIVIDADE PRÁTICA 1 – CONSTRUÇÃO DE PROGRAMA COM ESTRUTURA DE
REPETIÇÃO E ESTUTURA DE DECISÃO
Utilizar um dos ambientes de desenvolvimento em C++
o DEV C++, Code Blocks, C++ On-line ou C++ Movie
Codificar o programa usando uma biblioteca especifica para entrada e saída
de dados (stdio.h ou iostream);
Utilizar a estrutura de decisão IF, if-else ou switch-case;
Usar comando de digitação de valores de acordo com o tipo da varável;
Utilize uma variável para receber o valor de um número;
Crie um loop (use FOR ou while) que percorra todos os números inteiros de 1
até o número digitado;
Apresentar no fim do código o valor da soma dos inteiros entre 1 e o valor
digitado, assim como a quantidade de números divisíveis por 3;
Usar comandos de impressão de valores com formatação específica,
mesclando com a impressão de constantes caractere.
RELATÓRIO DE AULAS PRÁTICAS
ENSINO DIGITAL
RELATÓRIO
DATA:
______/______/______
#include // Inclusão da biblioteca padrão responsável pelas operações
de entrada e saída em C++
using namespace std; // Utilização do namespace std para evitar a necessidade de
qualificação explícita dos identificadores
int main() { // Função principal do programa, responsável pelo início da execução
// Declaração das variáveis utilizadas no processamento
int num, soma = 0, countDiv3 = 0;
// num: armazena o valor inteiro fornecido pelo usuário
// soma: variável acumuladora para armazenar a soma dos números inteiros do
intervalo
// countDiv3: contador responsável por registrar a quantidade de números
divisíveis por 3
// Entrada de dados: leitura do valor inteiro informado pelo usuário
cout > num; // Armazenamento do valor digitado na variável num
// Estrutura de repetição responsável por percorrer o intervalo de 1 até o valor
informado
for (int i = 1; i // Inclusão da biblioteca padrão para operações de entrada e
saída em C++
using namespace std; // Importação do namespace std para simplificar o uso de cin,
cout e endl
// Função responsável pelo cálculo da média aritmética
// Parâmetros:
// soma -> valor acumulado dos números informados (passagem por valor)
// contador-> quantidade de números digitados (passagem por valor)
// Retorno:
// valor da média calculada como double
double calcularMedia(int soma, int contador) {
return static_cast(soma) / contador; // Conversão explícita para evitar
divisão inteira
}
// Procedimento responsável por ler um número e atualizar soma e contador
// Parâmetros por referência permitem alterar os valores originais no programa
principal
void adicionarNumero(int &soma, int &contador) {
int num; // Declaração da variável local para armazenar o número digitado pelo
usuário
cout > num; // Leitura do valor digitado
soma += num; // Atualização da soma acumulada
contador++; // Incremento do contador de números digitados
}
int main() { // Função principal do programa
int soma = 0, contador = 0; // Inicialização das variáveis de controle
RELATÓRIO DE AULAS PRÁTICAS
ENSINO DIGITAL
RELATÓRIO
DATA:
______/______/______
char continuar; // Variável utilizada para controlar a repetição do laço
// Estrutura de repetição com dependência da decisão do usuário
do {
adicionarNumero(soma, contador); // Chamada do procedimento com
passagem por referência
cout > continuar; // Leitura da resposta
} while (continuar == 's' || continuar == 'S'); // Condição de repetição
// Estrutura de decisão para validar se houve entrada de dados
if (contador > 0) {
double media = calcularMedia(soma, contador); // Chamada da função para
cálculo da média
coutem C++
o DEV C++, Code Blocks, C++ On-line ou C++ Movie
Codificar o programa usando uma biblioteca especifica para entrada e saída
de dados;
Codificar o programa usando uma biblioteca especifica com funções
matemáticas (Math.h)
Utilizar estrutura de repetição WHILE OU FOR.
Usar o método MMI (Método do Meio intervalo) ou o MS (Método das
Secantes) para buscar uma raiz da função definida a seguir.
RELATÓRIO DE AULAS PRÁTICAS
ENSINO DIGITAL
RELATÓRIO
DATA:
______/______/______
Função:
𝒇 𝒙 𝒆𝒙 𝟑 𝐜𝐨𝐬 𝒙 𝟔
Com precisão de 𝜖 0,01
No intervalo [1;2]
Apresentar no fim do código o valor da raiz com erro de aproximação 0,01,
caso exista;
Usar comandos de impressão de valores com formatação específica,
mesclando com a impressão de constantes caractere.
#include // Inclusão da biblioteca padrão de entrada e saída
#include // Inclusão da biblioteca de funções matemáticas
using namespace std; // Utilização do namespace std para facilitar o uso dos comandos
// Função que define a equação f(x) = e^x - 3cos(x) - 6
double f(double x) {
return exp(x) - 3 * cos(x) - 6;
}
// Função que implementa o Método do Meio Intervalo (MMI)
// Parâmetros:
// a -> limite inferior do intervalo
// b -> limite superior do intervalo
// epsilon -> erro máximo permitido (precisão)
// Retorno:
// valor aproximado da raiz da função no intervalo especificado
double metodoMeioIntervalo(double a, double b, double epsilon) {
double c; // Variável para armazenar o ponto médio do intervalo
// Estrutura de repetição que executa enquanto o intervalo for maior que a precisão
desejada
while ((b - a) / 2 > epsilon) {
c = (a + b) / 2; // Cálculo do ponto médio do intervalo
// Verifica se o valor da função no ponto médio é zero
if (f(c) == 0) {
return c; // Raiz exata encontrada
}
// Verifica em qual subintervalo ocorre a mudança de sinal
else if (f(a) * f(c) // Inclusão da biblioteca padrão de entrada e saída
#include // Inclusão da biblioteca de funções matemáticas
using namespace std; // Utilização do namespace std para simplificar o uso dos comandos
// Função que define a equação f(x) = x^4 + 12.6x^3 - 155.7x^2 + 1863
double f(double x) {
return pow(x, 4) + 12.6 * pow(x, 3) - 155.7 * pow(x, 2) + 1863;
}
// Função que define a derivada de f(x)
// f'(x) = 4x^3 + 37.8x^2 - 311.4x
double f_prime(double x) {
return 4 * pow(x, 3) + 37.8 * pow(x, 2) - 311.4 * x;
}
// Função que implementa o Método de Newton-Raphson (MNR)
// Parâmetros:
// x0 -> valor inicial da aproximação
// epsilon -> erro máximo permitido
// Retorno:
// valor aproximado da raiz da função
double metodoNewtonRaphson(double x0, double epsilon) {
double x1; // Variável para armazenar a nova aproximação
// Estrutura de repetição que executa até que a precisão desejada seja atingida
while (true) {
x1 = x0 - f(x0) / f_prime(x0); // Fórmula do Método de Newton-Raphson
// Critério de parada baseado no erro de aproximação
if (fabs(x1 - x0) > escolha; // Leitura da escolha do usuário
// Definição do valor inicial de x0 com base no intervalo escolhido
switch (escolha) {
case 'A':
case 'a':
x0 = -18;
break;
case 'B':
case 'b':
x0 = -5;
break;
case 'C':
case 'c':
x0 = 1.5;
break;
case 'D':
case 'd':
x0 = 9;
break;
default:
coutREFERÊNCIAS BIBLIOGÁFICAS:
Lippman, S. B., Lajoie, J., & Moo , B. E. (2012). C++ Primer (5th Edition ). Addison -We sley
Professional.
Deitel, P., & Deitel, H. (2017). C++ How to Program (10th Edition). Pearson.
Chapra, S. C., & Canale, R. P. (2015). Numerical Methods for Engineers (7th Edition).
McGraw-Hill Education.
Chapra, S. C., & Canale, R. P. (2015). Numerical Method s fo r En gineers (7th Edition).
McGraw-Hill Education.