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

Documentos relacionados
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

INFORMÁTICA PARA ENGENHARIA AMBIENTE DE PROGRAMAÇÃO

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

Unidade 6: Ambiente de Programação

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

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

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

Aula 08: Repetição (Parte 3)

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

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

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

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

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

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

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

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

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

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

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

Aula 04: Fluxogramas e condicionais

LINGUAGEM E TÉCNICAS DE PROGRAMAÇÃO

ESTRUTURA COM DECISÃO COMPOSTA

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

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

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

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO

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

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

LP2 Laboratório de Programação 2 Ciência da Computação. Problema proposto

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

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

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

Algoritmos RESUMO - LINGUAGEM C

Programação de Computadores. Primeiro contato

CCO 016 / COM 110 Fundamentos de Programação

Introdução à Linguagem C

Introdução a Linguagem C

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

CCO 016 / COM 110 Fundamentos de Programação

Introdução à Computação

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

Aula 11: Laços e exercícios

ESTRUTURA DE DADOS LAÇOS E VETORES

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

Programação imperativa. 3. Mais funções

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

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

Aula 01. Tipos de Dados Saída de Dados Entrada de Dados Programação sequencial

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

INFORMÁTICA PARA ENGENHARIA

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

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

Introdução à Linguagem C

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

Retorna a quantidade de caracteres que o nome possui.

Aula 8 Comandos de Seleção

Programação de Computadores III

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

Programação das Aulas

Programação de Computadores III

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

PCI- Operadores, Expressões e Funções. Profa. Mercedes Gonzales Márquez

Programação de Computadores

Portugol. Tiago Alves de Oliveira

Recursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV

Aula 10: Manipulação do fluxo de laços

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA DISCUSSÃO DOS EXERCÍCIOS E EXERCÍCIOS EXTRAS

Fundamentos de Programação

Aula 4: Introdução à Linguagem C++

Operações e Expressões

Computação Eletrônica

Aula 6: Comandos Estruturados Estrutura Condicional

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C

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

Introdução à Computação

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Aula 17: Funções (Parte III) e Introdução a Vetores

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

Aula 05: Condicionais (Parte 2)

Programação de Computadores:

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

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

INFORMÁTICA APLICADA AULA 03 LINGUAGEM DE PROGRAMAÇÃO C++

Aula 10 Comandos de Repetição

Aula 01 Algoritmos e lógica de programação e introdução ao C++

PROGRAMAÇÃO DE COMPUTADORES I (Parte 1)

1 Introdução e Conceitos básicos

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

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

PROGRAMAÇÃO em C. Vitor Valerio de Souza Campos

Introdução da Linguagem C

Treinamento Olimpíada Brasileira de Informática

Aula 8: Estruturas de Repetição: O comando while

Transcrição:

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

Objetivos Entender a utilidade do resto de divisão Conhecer as funções matemáticas prontas do C/C++ Capacitar o aluno para criar algoritmos sequenciais com funções matemáticas em C/C++ LISTA 1

Material de Estudo Material Notas de Aula Apresentação Material Didático Acesso ao Material http://www.caetano.eng.br/ (Aula 6) http://www.caetano.eng.br/ (Aula 6) Lógica de Programação Fundamentos da Programação de Computadores, páginas 7 a 47.

RESTO DE DIVISÃO

Resto de Divisão

Número Par ou Ímpar? Como determinar se um número é par? Par: divisível por dois O que significa ser divisível por 2? Significa que o resto da divisão por 2 é 0! Vamos experimentar: Algoritmo que imprime 0 se o número é par e 1 se o número é impar

Verificando Paridade Linguagem Natural 1. Leia um número 2. Calcule o resto da divisão por 2 3. Imprima o resto Fluxograma Início N1 R = N1 % 2 Resto:, R Fim

Verificando Paridade Fluxograma Início N1 R = N1 % 2 Resto:, R Fim Portugol Algoritmo Calcula Paridade Var INTEIRO : N1, R Inicio Escreva( Digite Um Número: ) Leia(N1) R N1 % 2 Escreva( Resto:, R) FimAlgoritmo

Verificando Paridade Algoritmo Calcula Paridade Var INTEIRO : N1, R Inicio Escreva( Digite Um Número: ) Leia(N1) R N1 % 2 Escreva( Resto:, R) FimAlgoritmo

Verificando Paridade Portugol Algoritmo Calcula Paridade Var INTEIRO : N1, R Inicio Escreva( Digite Um Número: ) Leia(N1) R N1 % 2 Escreva( Resto:, R) FimAlgoritmo Linguagem C #include <iostream> using namespace std; int main(void) { int N1, R; cout << Digite Um Número: ; cin >> N1; R = N1 % 2; cout << Resto: << R; }

Verificando Paridade #include <iostream> using namespace std; int main(void) { } int N1, R; cout << Digite Um Número: ; cin >> N1; R = N1 % 2; cout << Resto: << R;

Verificando Paridade #include <iostream> using namespace std; int main(void) { } int N1, R; cout << Digite Um Número: ; cin >> N1; Como imprimir Par se o número é par e Ímpar se o número é ímpar? R = N1 % 2; cout << Resto: << R;

Conversão de Segundos para H:M:S Convertendo 54.346 segundos em Horas, Minutos e Segundos

Conversão de Segundos para H:M:S Convertendo 54.346s H : M : S 1h 3.600s Quantas horas tem em 54.346s? 54.346 / 3.600 = 15,09611111... horas 15 horas e uns quebrados... Quantos segundos sobraram?

Conversão de Segundos para H:M:S Convertendo 54.346s 15 : M : S 1h 3.600s Quantos segs. não completam 1h em 54.346s? 54.346 % 3.600 = 346... segundos

Conversão de Segundos para H:M:S Convertendo 54.346s 15 : M : S 1min 60s Quantos mins. tem em 346s? 346 / 60 = 5,7666666... minutos 5 minutos e uns quebrados... Quantos segundos sobraram?

Conversão de Segundos para H:M:S Convertendo 54.346s 15 : 05 : S 1min 60s Quantos segs. não completam 1min. em 346s? 346 % 60 = 46... segundos

Conversão de Segundos para H:M:S Resumindo 54.346 / 3.600 = 15,09611111... horas 54.346 % 3.600 = 346 segundos (sobram) 346 / 60 = 5,76666666... minutos 346 % 60 = 46 segundos (sobram) Assim: 54.346s = 15h, 5min, 46s Como fazer um programa que calcule isso?

Conversão de Segundos para H:M:S Linguagem Natural 1. Leia o número de segundos totais 2. Calcule o número de horas dividindo por 3600 (divisão inteira) 3. Calcule os segundos restantes com o resto de divisão por 3600 4. Calcule o número de minutos dividindo o resto anterior por 60 (divisão inteira) 5. Calcule os segundos finais com o resto de divisão por 60 6. Imprima o número de horas, minutos e segundos Fluxograma Início Horas:, H Minutos:, M Segundos:, S Fim ST H = ST \ 3600 SR = ST % 3600 M = SR \ 60 S = SR % 60

Conversão de Segundos para H:M:S Fluxograma Início Horas:, H Minutos:, M Segundos:, S Fim ST H = ST \ 3600 SR = ST % 3600 M = SR \ 60 S = SR % 60 Portugol Algoritmo Número de Semanas Var INTEIRO: ST, H, SR, M, S Inicio Escreva( Quantos segundos? ) Leia(ST) H ST \ 3600 SR ST % 3600 M SR \ 60 S SR % 60 Escreval( Horas:, H) Escreval( Minutos:, M) Escreval( Segundos:, S) FimAlgoritmo

Conversão de Segundos para H:M:S Algoritmo Número de Semanas Var INTEIRO: ST, H, SR, M, S Inicio Escreva( Quantos segundos? ) Leia(ST) H ST \ 3600 SR ST % 3600 M SR \ 60 S SR % 60 Escreval( Horas:, H) Escreval( Minutos:, M) Escreval( Segundos:, S) FimAlgoritmo

Conversão de Segundos para H:M:S Portugol Algoritmo Número de Semanas Var INTEIRO: ST, H, SR, M, S Inicio Escreva( Quantos segundos? ) Leia(ST) H ST \ 3600 SR ST % 3600 M SR \ 60 S SR % 60 Escreval( Horas:, H) Escreval( Minutos:, M) Escreval( Segundos:, S) FimAlgoritmo Linguagem C #include <iostream> using namespace std; int main(void) { int ST, H, SR, M, S; cout << Quantos segundos? ; cin >> ST; H = ST / 3600; SR = ST % 3600; M = SR / 60; S = SR % 60; cout << Horas: << H << endl; cout << Minutos: << M << endl; cout << Segundos: << S << endl; }

Conversão de Segundos para H:M:S #include <iostream> using namespace std; int main(void) { } int ST, H, SR, M, S; cout << Quantos segundos? ; cin >> ST; H = ST / 3600; SR = ST % 3600; M = SR / 60; S = SR % 60; cout << Horas: << H << endl; cout << Minutos: << M << endl; cout << Segundos: << S << endl;

FUNÇÕES MATEMÁTICAS

Funções Matemáticas Que bando de cálculo fuleiro! Onde estão as contas complexas? Cadê o logaritmo, a raiz quadrada e outros? Esses caras são chamados de funções Existem várias funções prontas no C/C++

Funções Matemáticas Portugol C/C++ Função - abs(x) Devolve o valor absoluto (sem sinal) de x - ceil(x) Devolve x arredondado para cima - floor(x) Devolve x arredondado para baixo x^y pow(x,y) Devolve o valor de x y - exp(x) Devolve o valor de e x raizq(x) sqrt(x) Devolve o valor da raiz quadrada de x (SQuare RooT) Pi M_PI Representa o valor de PI (3,141592...) sen(x) sin(x) Devolve o valor do seno de x (radianos) cos(x) cos(x) Devolve o valor do cosseno de x (radianos) tan(x) tan(x) Devolve o valor da tangente de x (radianos) - asin(x) Devolve o valor do arco-seno de x (arco em radianos) - acos(x) Devolve o valor do arco-cosseno de x (arco em radianos) - atan(x) Devolve o valor da arco-tangente de x (arco em radianos)

Senos, Cossenos e Tangentes Como um exemplo, vamos calcular senos, cossenos e tangentes 1. Vamos ler um ângulo 2. Vamos calcular os valores 3. Vamos imprimir os valores

Senos, Cossenos e Tangentes Início ANGULO S = SEN(ANGULO) C = COS(ANGULO) T = TAN(ANGULO) O seno é:, S, O cosseno é:, C, A tangente é:, T Fim

Senos, Cossenos e Tangentes - P Algoritmo Senos, cossenos e tangente Var REAL: ANGULO, S, C, T Inicio Escreva( Digite um ângulo 0 a 2*PI: ); Leia(ANGULO) S sen(angulo) C cos(angulo) T tan(angulo) Escreval( Seno:, S) Escreval( Cosseno:, C) Escreval( Tangente:, T) FimAlgoritmo

Senos, Cossenos e Tangentes - C #include <iostream> #include <math.h> using namespace std; int main(void) { float ANGULO, S, C, T; cout << Digite um ângulo 0 a 2*PI: ; cin >> ANGULO; S = sin(angulo); C = cos(angulo); T = tan(angulo); cout << Seno: << S << endl; cout << Cosseno: << C << endl; cout << Tangente: << T << endl; }

Senos, Cossenos e Tangentes E se quisermos ler o ângulo em GRAUS? 1. Vamos ler um ângulo (em graus) 2. Vamos convertê-lo em radianos 3. Vamos calcular os valores 4. Vamos imprimir os valores ANGULO = (ANGULO_GRAUS * PI) / 180

Senos, Cossenos e Tangentes Início AG S = SEN(AR) O seno é:, S AR = (AG * PI) / 180 Fim

Senos, Cossenos e Tangentes - P Algoritmo Ângulo em graus Var REAL : AG, AR, S Inicio Escreva( Digite um ângulo 0 a 360: ); Leia(AG) AR (AG * PI) / 180 S sen(ar) Escreval( O seno é:, S) FimAlgoritmo

Senos, Cossenos e Tangentes - P #include <iostream> #include <math.h> using namespace std; int main(void) { float AG, AR, PI, S; cout << Digite um ângulo 0 a 360: ; cin >> AG; AR = (AG * M_PI) / 180.0; S = sin(ar); cout << O seno é: << S << endl; }

PARA PENSAR: ARREDONDAMENTO

Função de Arredondamento Ainda que o Portugol não forneça uma função de arredondamento, ela existe no C/C++ float valor, arredondado; valor = 1.55; arredondado = round(valor); Qual o valor de arredondado? Arredondamento em C: funções limitadas!

Arredondando Números - C #include <iostream> #include <math.h> using namespace std; int main(void) { float NUM, ARRED; cout << Digite um número fracionário: ; cin >> NUM; ARRED = round(num); cout << Arredondado para: << ARRED << endl; getchar(); }

Função de Arredondamento floor arredonda para o inteiro anterior ceil arredonda para o próximo inteiro round arredonda para inteiro mais próximo Para pensar: Como fazer para arredondar com 1 casa decimal? E com 2 casas decimais? E com 3?

CONCLUSÕES

Resumo O uso de resto de divisão é útil para fracionar números em unidades menores e para verificar divisibilidade As bibliotecas do C/C++ fornecem uma porção de cálculos matemáticos prontos para serem usados TAREFA! Lista de Exercícios 1

Próxima Aula Como posso reaproveitar algoritmos complicados? Vou precisar reprogramar todas as vezes?

PERGUNTAS?

BOM DESCANSO A TODOS!