29
782 Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

  • Upload
    buithuy

  • View
    246

  • Download
    6

Embed Size (px)

Citation preview

Page 1: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

782 ‐ Programação em C/C++ - estruturabásica e conceitos fundamentais

Formador: Henrique Fidalgo 1

Page 2: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Algoritmos

Algoritmo pode ser definido como umconjunto finito de regras bemdeterminadas para a resolução de umproblema através de um número finitode operações.

Formador: Henrique Fidalgo 2

Page 3: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Por sua vez, programa (programa decomputador) pode ser simplesmentedefinido como um conjunto deinstruções destinadas a seremprocessadas num sistema informático.

Formador: Henrique Fidalgo 3

Page 4: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

A algoritmia, ou seja, a formulação dealgoritmos permite-nos separar duasfases distintas na resolução doproblema: A fase da formulação do algoritmo; A fase da sua implementação numa

linguagem de programação-

Formador: Henrique Fidalgo 4

Page 5: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Podemos considerar como algoritmos coisastão diversificadas como os seguintesexemplos:

A substituição de uma lâmpada A substituição de um pneu A utilização de determinado electrodoméstico Uma receita culinária A resolução de um problema de matemática

Formador: Henrique Fidalgo 5

Page 6: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Muitos algoritmos surgem-nos comosequências lineares de acções ouoperações, isto é, ordenadas de uma formasimples uma após outra:

Exemplo:1. Preparar uma lâmpada nova2. Retirar a lâmpada fundida3. Colocar a lâmpada nova

Formador: Henrique Fidalgo 6

Page 7: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Sequência linear de acções:

Formador: Henrique Fidalgo 7

Acção 1

Acção 2

Acção 3

Page 8: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Se nos limitar-mos a estes passos, temos umasequência ordenada de forma linear

Porém podemos adicionar acções adicionais:

4. Ligar o interruptor para verificar se a nova lâmpada acende ounão.

5. Se a lâmapada acender, podemos dar o processo por concluído;se não acender, teremos de repetir os passos 1 a 4.

Formador: Henrique Fidalgo 8

Page 9: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Com isto, passamos a ter uma sequência que jánão se mantêm numa simples ordem linear.

Em determinada altura surge uma condiçãoassociada à palavra “SE”:

SE a condição se verificar (se a lâmpada acender),damos o processo por concluído.

SE a condição não se verificar (se a lâmpada nãoacender), teremos de repetir os passos anteriores.

Formador: Henrique Fidalgo 9

Page 10: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Algoritmo

Formador: Henrique Fidalgo 10

Acção 1

Acção 2

Acção 3 Condição

Acção 4

Verdade

Falso

Page 11: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Algoritmo

Formador: Henrique Fidalgo 11

Preparar lâmpada nova

Retirar lâmpada fundida

Colocar lâmpada nova

Acende?

Fim

Sim

Não

Page 12: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 1: Elabore um algoritmo que ilustre a

substituição de um pneu de um automóvel

Formador: Henrique Fidalgo 12

Page 13: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 2: Elabore um algoritmo que ilustre uma

receita culinária

Formador: Henrique Fidalgo 13

Page 14: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 3: Elabore um algoritmo que ilustre a utilização

de um microondas para aquecer um prato de comida.

Formador: Henrique Fidalgo 14

Page 15: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Quando se trata de formular algoritmospara programas de computador, temos deter em conta quais são os principais tiposde operações que um sistema podeefectuar:

Input Processamento Output

Formador: Henrique Fidalgo 15

Page 16: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Operações de processamento – Operadores aritméticos

Estas operações são essencialmente operações decálculo aritmético e lógico. Utilizando para issooperadores aritméticos:

Formador: Henrique Fidalgo 16

Operador Operação+ Adição

- Subtracção

* Multiplicação

/ Divisão

Page 17: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Consideremos assim o exemplo de um algoritmo para calcular a área de um rectângulo:

Área do rectângulo: A = C * L

A – ÁreaC – ComprimentoL - Largura

Formador: Henrique Fidalgo 17

Page 18: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

AlgoritmoAlgoritmo para calcular

a área de um rectângulo:

Formador: Henrique Fidalgo 18

Obter L

Obter C

A = C*L

Mostrar A

Início

FIM

Page 19: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 4:

Elabore um algoritmo para obter a área de um triângulo:

A = b*h/2

Formador: Henrique Fidalgo 19

Page 20: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 5:

Elabore um algoritmo que permita calcular a soma de dois números.

Formador: Henrique Fidalgo 20

Page 21: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 6:

Elabore um algoritmo para obter o volume de um tanque paralelepipédico.

(Volume = altura * largura * comprimento)

Formador: Henrique Fidalgo 21

Page 22: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 7:

Faça um algoritmo para calcular quantas ferraduras são necessárias para equipar todos os cavalos comprados para um príncipe árabe.

Formador: Henrique Fidalgo 22

Page 23: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 8:

Escreva um algoritmo para ler o nome e a idade de uma pessoa, e exibir quantos dias de vida ela possui.

Considere sempre anos completos, e que um ano possui 365 dias.

Ex: uma pessoa com 19 anos possui 6935 dias.

Formador: Henrique Fidalgo 23

Page 24: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 9:

Alguns países medem temperaturas em grausCelsius, e outros em graus Fahrenheit. Faça umalgoritmo para ler uma temperatura Celsius eimprimi-la em Fahrenheit (pesquise como fazereste tipo de conversão).

Formador: Henrique Fidalgo 24

Page 25: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Operações de processamento – Operadores relacionais

Estes operadores são essencialmente utilizadosem operações de comparação:

Formador: Henrique Fidalgo 25

Operador Operação= Igualdade

> Maior que

< Menor que

>= Maior ou igual a

<= Menor ou igual a

<> Diferente

Page 26: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Consideremos assim o exemplo de um algoritmopara calcular se uma temperatura é negativa,positiva ou nula

Formador: Henrique Fidalgo 26

Ler T T>0?

Mostrar: Temperatura é

Positiva

SIM

T=0?NÃO

SIM

Mostrar: Temperatura é

Nula

NÃO

Mostrar: Temperatura é

NegativaInício

FIM

Page 27: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 7:

Elabore um algoritmo que ao ler dois números informe se estes são iguais ou diferentes.

Formador: Henrique Fidalgo 27

Page 28: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 8:

Elabore um algoritmo que ao ler dois números os coloque por ordem crescente (não se esqueça de informar se são iguais)

Formador: Henrique Fidalgo 28

Page 29: 782 Programação em C/C++ - estrutura básica e …Modo+de...782 ‐Programação em C/C++ - estrutura básica e conceitos fundamentais Formador: Henrique Fidalgo 1

Exercício 9:Elabore um algoritmo que permita ler o seu peso na terra, escolher umplaneta, e calcular o seu peso nesse planeta. A relação de planetas é:

A fórmula de cálculo da gravidade é:PesoNoPlaneta = PesoNaTerra / 10 * GravidadeRelativa

Formador: Henrique Fidalgo 29