Unidade 6: Ambiente de Programação Prof. Daniel Caetano

Documentos relacionados
Unidade 6: Ambiente de Programação

Unidade 6: Ambiente de Programação Prof. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO. Prof. Dr. Daniel Caetano

Unidade 5: Introdução à Programação com C/C++

INFORMÁTICA PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO

Unidade 5: Introdução à Programação com C/C++ Prof. Daniel Caetano

Unidade 4: Introdução à Lógica de Programação - Parte II Português Estruturado - Versão Estácio Prof. Daniel Caetano

Programação de computadores. Aula 31/08/2017

Unidade 4: Introdução à Lógica de Programação - Parte II

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Unidade 5: Introdução à Programação com Python Prof. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

Aula 08: Repetição (Parte 3)

As bibliotecas iostream e cstdlib permitem a utilização de diversos comandos de entrada e saída e funções básicas.

ACOS ASIN CEIL. Código:

Aula 04: Fluxogramas e condicionais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Portugol. Tiago Alves de Oliveira

INFORMÁTICA PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO. Prof. Dr. Daniel Caetano

Programação de Computadores I

Funções Padronizadas na Linguagem de Programação

Unidade 9: Introdução às Estruturas de Decisão

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Algoritmos e Técnicas de Programação. Professora: Luciana Faria

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO. Prof. Dr. Daniel Caetano

Introdução à Linguagem C. Adaptado de Deise Saccol

Disciplina: Introdução a Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer. Índice: Aula1 - Introdução Programa Algoritmo

5 Operações e Funções Matemáticas. Unesp Campus de Guaratinguetá

LÓGICA DE PROGRAMAÇÃO ESTRUTURAS DE DECISÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURAS DE DECISÃO. Prof. Dr. Daniel Caetano

Algoritmos RESUMO - LINGUAGEM C

Para cada programa, por mais simples que seja, comece sempre por esboçar a solução desenhando um fluxograma.

Unidade 1: Funções Prof. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURAS DE DECISÃO. Prof. Dr. Daniel Caetano

1 Introdução e Conceitos básicos

Linguagens de Programação Aula 13

Unidade 10: Estruturas de Decisão Compostas Prof. Daniel Caetano

Unidade 10: Programas com Estruturas de Decisão Prof. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURAS DE DECISÃO. Prof. Dr. Daniel Caetano

16 Definição e Uso de Funções em Programas

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA EXERCÍCIOS E CONSTRUÇÃO DE PROGRAMAS SEQUENCIAIS. Prof. Dr. Daniel Caetano

Introdução à Linguagem C

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Algoritmos - 2. Alexandre Diehl. Departamento de Física - UFPel

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 31/08/2015

Vírgula flutuante. Tipos float, double, long double. Uso de funções. Exercícios

Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013

Execução de instruções. Aula nº4

Unidade 1: Funções Prof. Daniel Caetano

ESTRUTURA COM DECISÃO COMPOSTA

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

Introdução a Linguagem C

Modificadores de Tipos

(Conceito de Variável Indexada, Funções e Procedimentos)

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Unidade 6: Modularização de Código Prof. Daniel Caetano

Linguagem C. Programação Estruturada. Funções Matemáticas. Prof. Luis Nícolas de Amorim Trigo

5 Funções. Site: BAC004 at Source page: 5 Funções at

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM PYTHON

INFORMÁTICA PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM PYTHON

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage. Introdução à Programação

Linguagem Haskell. Riocemar S. de Santana

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II. Prof. Dr. Daniel Caetano

TIPOS DE DADOS E VARIÁVEIS

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

#include <stdio.h> main () { float n1, n2, n3, mediaponderada; int p1, p2, p3; printf("digite a primeira nota: "); scanf("%f", &n1); printf("\ndigite

Introdução à Linguagem C. Adaptado de slides das Profas. Patrícia Jaques, Mônica Py, Deise Saccol e Vania Bogorny

Unidade 12: Estrutura de Repetição Simples Prof. Daniel Caetano

Introdução à Linguagem C

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO MÚLTIPLA. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE II PARA ENGENHARIA. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Módulo 7. Funções. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)

Introdução à Computação

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Aula 03 - Introdução ao Scilab (p2)

Programação Imperativa. Lição n.º 3 Operações aritméticas

Conhecendo a Linguagem de Programação C

Ocorrem em três tipos:

Aula 12- Variáveis e valores reais

Programação de Computadores III

Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática

scanf () Funções de Entrada e Saída Formatada leitura de dados; formato geral: scanf (string_de_controle,lista_de_argumentos);

Programação de Computadores III

Programação I PRG Engenharia de Telecomunicações 2ª Fase Professor: Cleber Jorge Amaral

Algoritmo e Programação Matemática

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Transcrição:

Lógica de Programação para Engenharia 1 Unidade 6: Ambiente de Programação Prof. Daniel Caetano Objetivo: Apresentar o uso de funções prontas do Portugol e do C/C++ para efeturar cálculos mais complexos. Bibliografia: ASCENCIO, 2007; MEDINA, 2006; SILVA, 2010; SILVA, 2006. INTRODUÇÃO Nas aulas anteriores tomamos contato com a base das linguagens Portugol e C/C++. Nesta aula, veremos algumas funções matemáticas mais avançadas do Portugol e do C/C++, que propiciam cálculos mais complexos e, portanto, tornam o computador mais interessante para o engenheiro. Ao final desta aula, você saberá como usar o resto da divisão para executar tarefas úteis, além de aprender a utilizar diversas funções matemáticas pré-programadas nas linguagens. 1. O RESTO DE DIVISÃO Muitos alunos, em um primeiro momento, se questionam sobre a utilidade do resto de divisão ( operador % ). Parece um cálculo sem muita lógica, já que é pouco usado em nosso dia-a-dia, em que não fazemos cálculos de "divisão inteira". Entretanto, na programação, a divisão inteira tem um papel muito importante, em especial na determinação "par/ímpar" e no cálculo de conversão entre bases ou escalas numéricas. Vejamos cada um destes casos. 1.1. DETERMINAÇÃO "PAR/ÍMPAR" Determinar a paridade significa determinar se um valor é par ou ímpar. Matematicamente, pode-se dizer que um número é par sempre que ele é divisível por 2. Ora, ser divisível por 2 significa que o resto da divisão por 2 é zero! Assim, um algoritmo para determinar se um número é par ou ímpar pode ser descrito conforme o fluxograma a seguir. Se ele imprimir "0" significa que o número é par; se, por outro lado, ele imprimir "1", significa que o número é ímpar!

Lógica de Programação para Engenharia 2 Em portugol, o algoritmo tem a seguinte forma: ALGORITMO "Verifica se é par ou ímpar" INICIO inteiro valor, resto escreva "Digite um valor: " leia valor resto <- valor % 2 escreva "O resto é (0=par;1=ímpar): ", resto, fiml FIMALGORITMO Em C/C++, este mesmo código tem a seguinte forma: int valor, resto; cout << "Digite um valor: "; cin >> valor; resto = valor % 2; cout << "O resto é (0=par;1=ímpar): " << resto << endl;

Lógica de Programação para Engenharia 3 1.2. CÁLCULOS DE CONVERSÃO Vejamos agora como calcular uma conversão. Suponhamos que nos seja fornecido um número de segundos qualquer, por exemplo: 54346. Queremos representar este número em termos de horas : minutos : segundos. Sabendo que: a) Uma hora tem 3600 segundos; b) Um minuto tem 60 segundos. Podemos fazer essa conversão da seguinte forma: Passo 1: Obter o número de horas com a divisão inteira por 3600 Passo 2: Calcular os segundos restantes com o resto de divisão por 3600 Passo 3: Calcular o número de minutos com a divisão inteira por 60 Passo 4: Calcular os segundos restantes com o resto de divisão por 60 Vejamos: segundos_a = 54346 horas = segundos_a \ 3600 segundos_b = segundo_a % 3600 minutos = segundos_b \ 60 segundos = segundos_b % 60 => 15 (horas) => 346 (segundos) => 5 (minutos) = > 46 (segundos) Assim, o 54346s = 15h : 5min : 46s O fluxograma deste algoritmo é o seguinte:

Lógica de Programação para Engenharia 4 Em portugol, o algoritmo fica como é descrito a seguir. Observe a declaração das variáveis e a sequência de cálculos. ALGORITMO "Converte segundos em h:min:s" INICIO inteiro segundos, segundos_restantes, segundos_totais inteiro minutos, horas escreva "Digite um valor (em segundos): " leia segundos_totais horas <- segundos_totais \ 3600 segundos_restantes <- segundos_totais % 3600 minutos <- segundos_restantes \ 60 segundos <- segundos_restantes % 60 escreva "Resultado: ", horas, "h : " escreva minutos, "min : ", segundos, "s", fiml FIMALGORITMO Em C/C++, este mesmo código tem a seguinte forma: int segundos_restantes, segundos_totais, segundos; int minutos, horas; cout << "Digite um valor (em segundos): "; cin >> segundos_totais; horas = segundos_totais / 3600; segundos_restantes = segundos_totais % 3600; minutos = segundos_restantes / 60; segundos = segundos_restantes % 60; cout << "Resultado: " << horas << "h : "; cout << minutos << "min : " << segundos << "s" << endl; Por que é que eu posso usar a divisão tradicional? Na verdade, o ideal seria usar a divisão inteira; uma vez que o C/C++ não tem esse operador, usamos a divisão tradicional. Isso funciona porque as variáveis com que estamos trabalhando são inteiras, isto é, elas não armazenam a parte fracionária dos cálculos. Isso significa que, quando guardamos um número fracionário em uma variável inteira, a parte fracionária é perdida! NOTE que isso não é o mesmo que arredondar!

Lógica de Programação para Engenharia 5 2. FUNÇÕES MATEMÁTICAS Muitas vezes precisamos usar operações matemáticas na linguagem C/C++ para que possamos implementar algoritmos que solucionem nossos problemas de engenharia. Funções como seno e cosseno, por exemplo, estão diposníveis para nosso uso. Abaixo, segue uma lista de funções, com seus nomes na versão Portugol e C/C++: Portugol - cos( x ) - abs( x ) - logn( x ) log( x ) exp( x, y ) sen( x ) raizq( x ) tan( x ) Pi C/C++ ceil( x ) cos( x ) exp( x ) abs( x ) floor( x ) log( x ) log10( x ) pow( x, y ) sin ( x ) sqrt( x ) tan( x ) M_PI Comentário Devolve o valor de x arredondado para cima Devolve o cosseno de x (com x em radianos) Devolve o valor de e x Devolve o valor absoluto (sem sinal) de x Devovle o valor de x arredondado para baixo Devolve o logaritmo natural de x Devolve o logaritmo em base 10 de x Devolve o valor de x y Devolve o seno de x (com x em radianos) Devolve a raiz quadrada de x Devolve a tangente de x (com x em radianos) Devolve o valor de PI (3,141592...) Como usamos estas "funções" pré-programadas? Podemos usá-las de várias formas. Observe o seguinte fluxograma:

Lógica de Programação para Engenharia 6 Observe o código abaixo, em portugol: ALGORITMO "Teste de funções matemáticas" INICIO real angulo, angulo_radianos, resultado // Lê ângulo em graus escreva "Digite um ângulo entre 0 e 360: " leia angulo // Calcula ângulo em radianos angulo_radianos <- (angulo * pi) / 180 // Calcula o cosseno resultado <- cos( angulo_radianos ) escreval "O cosseno é: ", resultado // Calcula o seno resultado <- sen( angulo_radianos ) escreval "O seno é: ", resultado // Calcula a tangente resultado <- tan( angulo_radianos ) escreva "A tangente é: ", resultado, fiml FIMALGORITMO O mesmo código em C/C++ fica assim: #include <math.h> float angulo, angulo_radianos, resultado, pi; // Lê ângulo em graus cout << "Digite um ângulo entre 0 e 360: "; cin >> angulo; // Calcula ângulo em radianos angulo_radianos = (angulo * M_PI) / 180.0; // Calcula o cosseno resultado = cos( angulo_radianos ); cout << "O cosseno é: " << resultado << endl; // Calcula o seno resultado = sin( angulo_radianos ); cout << "O seno é: " << resultado << endl; // Calcula a tangente resultado = tan( angulo_radianos ); cout << "A tangente é: " << resultado << endl; OBSERVE a necessidade de incluir a linha: #include <math.h> Esta linha serve para indicar à linguagem C/C++ que iremos utilizar as funções matemáticas. Sem essa linha, o programa não vai ser gerado. Essas linhas "include" (que

Lógica de Programação para Engenharia 7 significa "incluir") são necessárias porque a linguagem C/C++ é uma linguagem extensível, isto é, ela permite que eu acrescente funções a ela. Veremos futuramente como fazer isso. 3. FUNÇÃO DE ARREDONDAMENTO Ainda que em Portugol não exista uma função pronta para arredondamento, ela existe no C/C++. Entretanto, o C/C++ só tem funções de arredondamento para baixo ( floor ) e para cima ( ceil ). Por exemplo: Número floor ceil round 1,4 1,0 2,0 1,0 1,5 1,0 2,0 2,0 Elas podem ser usadas da seguinte forma: #include <math.h> float num, arred; // Lê número fracionário cout << "Digite um número fracionário (ex: 1.578): "; cin >> num; // Arredonda arred = round(num); // Imprime resultado: cout << "O valor arredondado é: " << arred << endl; 4. BIBLIOGRAFIA ASCENCIO, A.F.G; CAMPOS, E.A.V. Fundamentos da Programação de Computadores. 2ed. Rio de Janeiro, 2007. MEDINA, M; FERTIG, C. Algoritmos e Programação: Teoria e Prática. 2ed. São Paulo: Ed. Novatec, 2006. SILVA, I.C.S; FALKEMBACH, G.M; SILVEIRA, S.R. Algoritmos e Programação em Linguagem C. 1ed. Porto Alegre: Ed. UniRitter, 2010.