• Nenhum resultado encontrado

Algoritmos Introdução. Thiago Leite e Francisco Barretto

N/A
N/A
Protected

Academic year: 2021

Share "Algoritmos Introdução. Thiago Leite e Francisco Barretto"

Copied!
81
0
0

Texto

(1)

Algoritmos   Introdução

Thiago Leite e Francisco Barretto thiago.leite@udf.edu.br

francisco.barretto@udf.edu.br

(2)

Bibliografia

MANZANO, José

Augusto; OLIVEIRA, Jayr Figueiredo de.

Algoritmos: Lógica

para Desenvolvimento de Programação de

Computadores. 17ª Edição. São Paulo:

Editora Erica, 2005.

(3)

Bibliografia

FEOFILOFF, Paulo.

Algorítimos em

linguagem C. Rio de

Janeiro: Elsevier, 2009. xv, 208 p. ISBN

9788535232493.

(4)

Bibliografia

MEDINA, Marco;

FERTING, Cristina.

Algoritmos e

programação: teoria e prática. São Paulo:

Novatec Editora, 2006.

(5)

Bibliografia

ASCENCIO, Ana Fernanda Gomes;

CAMPOS, Edilene

Aparecida Veneruchi de.

Fundamentos da Programação de Computadores. 3ª Edição. São Paulo:

Pearson, 2012.

(6)

Ementa

1.Introdução

2.Estruturas de decisão 3.Estruturas de repetição 4.Estruturas de dados

5.Sub-rotinas

(7)

Avaliação

• Seis exercícios individuais em sala (1 ponto cada)

• Datas a serem definidas

• Prova Regimental Integralizada (5 pontos)

Não há arredondamento de notas

(8)

Presença em Sala de Aula

• Limite de 20 faltas

• 4 faltas por dia de aula (aulas duplas)

Presença do aluno será cobrada

(9)

Introdução

• Como um computador realiza suas atividades?

• pessoas “programam” os computadores

• computadores apenas processam

(10)

Introdução

• O computador é composto de duas partes diferentes

• hardware - partes físicas que realizam o processamento

• software - composto pelos programas

que “sabem” como os dados devem ser

processados

(11)

Introdução

• Para criar programas é necessário utilizar uma linguagem que o computador

compreenda

• Linguagem de Programação

(12)

Níveis das Linguagens de

Programação

(13)

Introdução

• Para o desenvolvimento de um programa é necessário

• Análise do problema

• Algoritmo que resolva o problema

• Codificação na linguagem de

programação

(14)

Introdução

O que é um Algoritmo?

“(...) sequência de passos que visa garantir um objetivo bem definido.”

“(...) descrição de uma sequência de passos que deve ser seguida para a realização de uma

tarefa.”

“(...) sequência finita de instruções ou

operações cuja execução, em tempo finito, resolve um problema computacional”

(15)

Introdução

• No dia-a-dia nós mesmos realizamos algoritmos

• Somar três números

(16)

Introdução

• Algoritmo para somar três números

• Passo 1 - receber os três números

• Passo 2 - somar os três números

• Passo 3 - apresentar o resultado obtido

(17)

Introdução

• E como seria um Algoritmo para fazer um

sanduíche?

(18)

Introdução

Algoritmo para fazer um sanduíche

Passo 1 - Pegar o pão

Passo 2 - Cortar o pão ao meio

Passo 3 - Pegar a maionese

Passo 4 - Passar a maionese no pão

Passo 5 - Pegar o alface

Passo 6 - Colocar o alface no pão

Passo 7 - Pegar o hambúrguer

Passo 8 - Fritar o hambúrguer

Passo 9 - Colocar o hambúrguer no pão

(19)

Introdução

• Algoritmo para trocar uma lâmpada?

• Algoritmo para ir para a faculdade?

• Algoritmo para sacar no banco 24 horas?

...

(20)

Introdução

• Mas os passos que realizaria são diferentes!

• por isso existem vários algoritmos que resolvem os mesmos problemas

• Exemplo: um algoritmo para calcular

(21)

Introdução

Como construir um algoritmo?

compreender o problema a ser resolvido

definir os dados de entrada

definir como será realizado o processamento e quais dados serão utilizados

definir os dados de saída

construir o algoritmo com o tipo mais adequado (tipos de algoritmos explicados a seguir)

testar o algoritmo utilizando simulações

(22)

Introdução

• Símbolos para o desenho de Algoritmos

• algoritmos são representados de diversas formas

• utilizamos símbolos para a representação

da lógica envolvida

(23)

Introdução

• Formas de representação de algoritmos

• Fluxogramas

• Diagrama de Bloco

(24)

Introdução

Fluxograma

representação do fluxo de execução utilizando poucos símbolos

foco na lógica, e não no desenvolvimento do programa

(25)

Introdução

• Diagrama de Blocos

• também denominado “diagrama de fluxo”

• representação utilizando diversos

símbolos em quaisquer níveis de detalhes

• foco no desenvolvimento do programa

(26)

Diagrama de Blocos

(27)

Símbolos Básicos

Símbolo Significado

Início ou fim de um fluxo de programa

Seta de fluxo de dados Processamento de dados

Entrada de dados Decisão

Entrada e saída de dados

(28)

Exemplo de um Algoritmo

(29)

Introdução

Lógicas

Linear

• Estruturada

Modular

• Diagrama de Chapin

• Português Estruturado

(30)

Introdução

Lógica Linear

objetos organizados em um passo-a-passo simples

utilizada quando há recursos limitados

normalmente adotado na matemática

(31)

Introdução

Lógica Estruturada

composto

principalmente de sequência, seleção e iteração.

geralmente utilizado no processamento eletrônico de dados

(32)

Lógica Estruturada

(33)

Introdução

Lógica Modular

desenvolver o código em partes

independentes,

chamados módulos

dividir o problema complexo em

problemas menores

(34)

Introdução

• Diagrama de Chapin

• Desenvolvido por Nassi e Shneiderman

• apresenta uma visão hierárquica e

estruturada do fluxo

(35)

Diagrama de Chapin

(36)

Português Estruturado

Português Estruturado

técnica narrativa utilizando de pseudocódigo, ou português estruturado

baseada na PDL (Program Design Language)

referência genérica ao desenvolvimento com uma linguagem de programação

se assemelha a uma linguagem de alto nível, porém não poderá ser compilada em um computador

(37)

Português Estruturado

(38)

Exercício

• Elaborar algoritmo necessário para o

cálculo se um aluno será aprovado ou não no UDF

• A partir da compreensão do algoritmo,

elaborar o diagrama de fluxo, diagrama de

chapin e em português estruturado

(39)

Introdução

• Tipos de informações

dados

instruções

(40)

Introdução

• Tipos de dados

• inteiros - números naturais

• ex: 0, 1, -56, 187

• reais - números reais

• ex: 0, 1.5, -45.987

(41)

Introdução

Tipos de dados (continuação)

caracteres (literal) - letras, símbolos e números em uma expressão

ex: “Ola Mundo!”

lógicos (booleano) - representa a

possibilidade de algo ser verdadeira ou falso

ex: falso, verdadeiro, false, true, 0, 1

(42)

Exercício sobre Tipos de Dados

X

XX X

(43)

Exercício sobre Tipos de Dados

X X X

(44)

Exercício sobre Tipos de Dados

XX X X

(45)

Exercício sobre Tipos de Dados

X

X

(46)

Introdução

Uso de variáveis

quando há dados a serem inconstantes, instáveis ou incertas

analogia com um conjunto de gavetas

cada gaveta pode armazenar apenas um tipo de dado

cada gaveta deve possuir um nome para organização

(47)

Representação da Memória do

Computador

(48)

Introdução

Regras para nomes de variáveis

poderão possuir um ou mais caracteres

o primeiro caracter deve ser, necessariamente, uma letra

o nome da variável não deverá possuir espaços

não poderá possuir o mesmo nome que uma instrução do programa (ex: variável “soma” e rotina “soma”)

não poderá possuir caracteres diferentes que números e letras

(49)

Introdução

• Nomes válidos de variáveis

• NomeUsuario

Fone1

Delta25

(50)

Introdução

• Nomes inválidos de variáveis

• Nome Usuario

Fone#

• Escreva (considerando que “Escreva” seja

também o nome da instrução)

(51)

Exercício sobre Variáveis

X XX

X

(52)

Introdução

Uso de Constantes

quando há dados que são fixos e certos

exemplo:

Resultado  =  Entrada  *  1.23  

1.23 é constante, então:

Fator  =  1.23  

Resultado  =  Entrada  *  Fator

(53)

Introdução

• Operadores Aritméticos

• variáveis e constantes podem ser

utilizadas para cálculos matemáticos

• apenas variáveis e constantes inteiras e reais podem ser utilizadas para cálculos

• operadores aritméticos podem ser

binários ou unários

(54)

Introdução

• Operadores aritméticos binários

• cálculo entre dois ou mais objetos. Ex:

multiplicação, divisão, adição e subtração

• Operadores aritméticos unários

• operação sobre um objeto. Ex:

manutenção do sinal ou inversão do sinal

(55)

Operadores Aritméticos

(56)

Introdução

• Expressão aritmética na matemática

X  =  {  43  .  [  55  :  (  30  +  2  )  ]  }  

• Expressão aritmética na computação

X  <-­‐  (  43  *  (  55  /  (  30  +  2  )  )  )

(57)

Introdução

• Uso de operadores aritméticos

• Exemplo: cálculo da área de um círculo

• Algoritmo: Area = π * Raio

2

• Sendo π (Pi) com o valor de 3.14159

• Como escrever a mesma expressão na

computação?

(58)

Introdução

• Resposta:

Pi  <-­‐  3.14159  

Area  <-­‐  Pi  *  Raio  2

(59)

Introdução

• Converter a fórmula abaixo para o meio computacional

!

Area  =  Base  .  Altura    

               2

(60)

Introdução

Resposta:

Area  <-­‐  (Base  *  Altura)  /  2

(61)

Introdução

• Exercício: Desenvolva em Português

Estruturado o Algoritmo necessário para

cálculo da área de um círculo

(62)

Introdução

• Passos necessários ao algoritmo

1. Ler o valor para o raio em uma variável 2. Estabelecer o valor da constante Pi

3. Efetuar o cálculo da área

4. Apresentar o resultado do cálculo

(63)

Introdução

Diagrama de Blocos para o cálculo de área de um círculo

(64)

Introdução

Símbolos de entrada e saída em um diagrama de blocos

(65)

Cálculo Área Círculo

programa  AREA_CALCULO   var  

  A  :  real     P  :  real     R  :  real   inicio  

  leia  R  

  P  <-­‐  3.14159     A  <-­‐  P  *  R    2     escreva  A  

fim

(66)

Introdução

• Exercício: cálculo do salário líquido de um

professor ao final do mês, considerando o

percentual de desconto do INSS

(67)

Introdução

Passos necessários ao algoritmo

1. estabelecer a leitura da variável HT (horas trabalhadas no mês) 2. estabelecer a leitura da variável VH (valor da hora aula)

3. estabelecer a leitura da variável PD (percentual de desconto) 4. calcular o salário bruto (SB), sendo esse a multiplicação das

variáveis HT e VH

5. calcular o total de desconto (TD) com base no PD divido por 100 6. calcular o salário líquido (SL), deduzindo o desconto do salário

bruto

7. apresentar os valores de SB e SL

(68)

Introdução

Diagrama de Blocos para o cálculo de salário

bruto e líquido de um professor

(69)

Cálculo Salário Professor

(70)

Introdução

Linguagem C

uso de propósito geral

linguagem estruturada e procedural

padronizada pela ANSI e ISO

criada em 1972 por

Dennis Ritchie no AT&T Bell Labs para desenvolver o sistema operacional Unix

(71)

Introdução

Linguagem C

foi inspirada na linguagem de programação B,

que foi uma versão reduzida da linguagem BCPL

permitiu o desenvolvimento de sistemas

operacionais em uma linguagem diferente do que Assembly

em 1983 a linguagem ficou conhecida como ANSI C

(72)

Exemplo de Código em Assembly x86

1.                  .486p  

2.                  .model    flat,STDCALL   3. include    win32.inc  

4. extrn                        MessageBoxA:PROC   5. extrn                        ExitProcess:PROC   6. .data  

7. HelloWorld  db  "Hello,  world!",0  

8. msgTitle  db  "Hello  world  program", 0  

9. .code   10.Start:  

11.                  push        MB_ICONQUESTION  +   MB_APPLMODAL  +  MB_OK  

12.                  push        offset  msgTitle   13.                  push        offset  HelloWorld   14.                  push        0  

15.                  call        MessageBoxA   16.                  push  0  

17.                  call  ExitProcess   18.ends  

19.end  Start

(73)

Exemplo de Código em Linguagem C

/*  Hello  World  program  */  

#include<stdio.h>  

main()   {  

       printf("Hello  World");  

}

(74)

Introdução

Símbolos apresentados no código

/*  */  

comentários no código-fonte

texto não interpretado pelo compilador

#include<arquivo.h>  

inclusão de arquivo externo

geralmente possui a definição de funções a serem utilizadas

(75)

Introdução

Símbolos apresentados no código

main  ()  {  …  }  

função inicial que será executada quando o programa for invocado

printf(…)  

função para a impressão de dados na tela do usuário

;  

na finalização de toda instrução deverá haver um ponto e vírgula ( ; )

demarcação do término de uma instrução

(76)

Introdução

Principais tipos de dados em C

int

valores numéricos inteiros

char

1 byte para armazenar um caracter qualquer

float

valores numéricos com ponto flutuante

double

valores numéricos com ponto flutuante com o dobro da capacidade

(77)

Introdução

Exemplo de conversão de Português Estruturado para Linguagem C programa  SOMA_NUMEROS  

var  

  a,  b,  soma:  inteiro   inicio  

  a  <-­‐  5     b  <-­‐  3  

  soma  <-­‐  a  +  b  

  escreva  “O  valor  da  soma  dos  numeros  e:  “,  soma   fim

(78)

Introdução

Exemplo de conversão de Português Estruturado para Linguagem C

#include  <stdio.h>  

main  ()  {  

  int  a,  b,  soma;  

!

  a  =  5;  

  b  =  3;  

  soma  =  a  +  b;  

  printf(“O  valor  da  soma  dos  números  é:  %d”,  soma);  

}  

(79)

Exercícios de Fixação

• Elaborar um programa que efetue a

apresentação do valor da conversão em

real (R$) de um valor lido em dólar (US$).

O programa deverá solicitar o valor da

cotação do dólar e também a quantidade

de dólares disponível para o usuário.

(80)

Exercícios de Fixação

• Elaborar um programa que calcule e apresente o volume de uma caixa

retangular, por meio da fórmula:

Volume  <-­‐  Comprimento  *  Largura  *  Altura

(81)

Exercícios de Fixação

• Ler uma temperatura em graus Fahrenheit e apresentá-la convertida em graus Celsius.

A fórmula de conversão é:

C  <-­‐  (F  -­‐  32)  *  (5/9)  

• sendo F a temperatura em Fahrenheit e C a

temperatura em Celsius.

Referências

Documentos relacionados

Com o intuito de registrar tais alterações, anúncios de revistas premiados pelo 20º Anuário do Clube de Criação de São Paulo são apresentados de forma categórica como

Os estudos originais encontrados entre janeiro de 2007 e dezembro de 2017 foram selecionados de acordo com os seguintes critérios de inclusão: obtenção de valores de

Interesses, conflito, poder e negociação: as organizações como sistemas políticos Leitura de textos Discussão dialogada Fórum de dúvidas Estudo de caso Data de realização

A seleção portuguesa feminina de andebol de sub-20 perdeu hoje 21-20 com a Hungria, na terceira jornada do Grupo C do Mundial da categoria, a decorrer em Koprivnica, na

Está prevista a redução do Conselho de Administração para 5 membros, dos quais 3 executivos e os restantes dois não executivos.. Os administradores executivos e não

Artigo 17.. b) Promover as acções necessárias aos trabalhos de avaliação de candidaturas a financiamentos de programas e projectos de investigação cien- tífica e

É primeiramente no plano clínico que a noção de inconscien- te começa a se impor, antes que as dificuldades conceituais envolvi- das na sua formulação comecem a ser

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o