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

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

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

Noções de algoritmos - Aula 1

Capítulo 1 Conceitos Básicos

Noções de algoritmos - Aula 1

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Introdução aos Algoritmos

Introdução aos Algoritmos

Programação Estruturada Aula VisualG

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

ALGORITMOS AULA 2. Profª Amanda Gondim

Algoritmos e Estruturas de Dados

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

Algoritmo e Programação Matemática

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Portugol. Tiago Alves de Oliveira

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Programação de Computadores I Estrutura de um Programa Procedimentos de Entrada e Saída PROFESSORA CINTIA CAETANO

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Sintática: como é escrito cada elemento da linguagem de programação.

TIPOS DE DADOS E VARIÁVEIS

Português Estruturado (VISUALG)

#Conceituação. Algoritmos. Eliezio Soares

Introdução a programação Visão geral

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

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

Algoritmo e Programação. Capítulo 2 Tópicos Preliminares

CMP Algoritmos Algoritmos Parte I. Professor Vicente Paulo de Camargo

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos: tipos de dados, variáveis e expressões

ALGORITMOS AULA 1. Profª Amanda Gondim

Técnicas de Programação

Introdução a Lógica de Programação

Introdução à Ciência da Computação

Programação de Computadores

Prof. José Remo / Prof. Ildeberto Rodello 1

CONCEITOS DE ALGORITMOS

Introdução à Programação de Computadores Fabricação Mecânica

Algoritmos Computacionais

PROGRAMAÇÃO COMPUTACIONAL I

Pseudocódigo e Visualg

Curso: Análise e Desenvolvimento de Sistemas. (Conceitos Práticos de Lógica de Programação)

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

I - CONCEITOS INICIAIS

Algoritmos Estrutura Condicional

Conceitos Básicos de Algoritmos

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Algoritmos e Técnicas de Programação

Conceitos básicos de algoritmos

Prof. Jorge Cavalcanti

Português Estruturado

ALGORITMOS. O que é Algoritmo? Algoritmo é um dos processo para criação

Capítulo 3 Estrutura Sequencial

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

Processamento de Dados aplicado à Geociências. AULA 4:Comando de Entrada Comando de Saída Comando de Atribuição

Lógica de Programação Teoria. rogerioaraujo.wordpress.com - 1

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Introdução a Computação

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

É neste ponto que entra o conceito de lógica de programação.

TECNOLOGIA EM REDES DE COMPUTADORES. computadores. Aula 4

Algoritmos. Conceitos e Comandos

Pseudocódigo e visualg

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

ET51D - INFORMÁTICA. Algoritmos - Introdução. Prof: Glauber G. O. Brante e Mariana Furucho.

Programação de Computadores III

Tipos de Dados e Expressões

Fábio Rodrigues / Israel Lucania

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Aula 4 Estruturas Condicionais

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

Introdução ao Fortran 90-1

ALGORITMOS 3ª Aula. 3. Introdução Tipos de dados, variáveis e operadores Tipos de dados

Algoritmos Parte 2. Introdução à Ciência da Computação

Algoritmos e Programação I

Linguagem Computacional

Instruções, dados e expressões

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

INF1005: Programação I. Capítulo 2. Ivan Mathias Filho Algoritmo

Prof. A. G. Silva. 14 de março de Prof. A. G. Silva INE5231 Computação Científica I 14 de março de / 26

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Algoritmos I Edézio 1

Projeto de Algoritmos

Introdução ao VisuALG

AULA 07. HABILIDADES TRABALHADAS: Desenvolver algoritmos utilizando laços a partir da leitura de fluxogramas ou algoritmos em portugol.

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

Algoritmos e Lógica de Programação. Notas de Aula

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Computação I (MAB120) DCC/UFRJ

Algoritmos: Conceitos Fundamentais. Slides de autoria de Rosely Sanches e Simone Senger de Souza

Algoritmos: Conceitos Fundamentais. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

Transcrição:

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

Conceitos básicos Computador: conceito clássico (até quando????) HARDWARE (partes físicas) SOFTWARE (programas) SCEF 2

Conceitos básicos Computador: conceito clássico (até quando????) Dispositivos de saída Central de processamento Dispositivos de entrada SCEF 3

Conceitos básicos Computador: conceito clássico (até quando????) A finalidade de um computador é receber, manipular e armazenar dados. A finalidade de um computador é realizar o processamento de dados. SCEF 4

Conceitos básicos Computador: conceito clássico (até quando????) Processamento de dados Fonte: Ascencio e Campos SCEF 5

Conceitos básicos Computador: conceito clássico (até quando????) Processamento de dados Realizado através da execução de um programa computacional ou vários programas interligados. Etapas para o desenvolvimento de um programa O problema é estudado para para definir os os dados de de entrada, o processamento e os os dados de de saída. Definimos a ferramenta lógica para para descrever o problema com com suas suas soluções. O algoritmo é transformado em em códigos de de linguagem de de programação. SCEF 6

Algoritmo: Definição 1 ALGORITMO é uma sequência ordenada e finita de de operações para a realização de de uma tarefa qualquer (Ascencio, 1999). Exemplo: Realização de um experimento de Física Experimental 1 Passo 1: 1: Reunir os os equipamentos necessários para para o experimento. Passo 2: 2: Montar o aparato experimental. Passo 3: 3: Realizar o experimento. Passo 4: 4: Fazer a análise dos dos dados experimentais. Passo 5: 5: Fazer o relatório do do experimento. Passo 6: 6: Entregar o relatório. SCEF 7

Algoritmo: Definição 2 ALGORITMO é uma sequência ordenada e finita de de instruções ou ou operações para a solução de de um problema computacional. Exemplo: Calcular a média das idades dos alunos da turma Passo 1: 1: Reunir (ou (ou obter) as as idades dos dos alunos. Passo 2: 2: Calcular a média das das idades. Passo 3: 3: Apresentar o resultado do do cálculo da da média. SCEF 8

Algoritmo: Definição 3 ALGORITMO é a descrição de de um conjunto de de comandos que, obedecidos, resultam numa sucessão finita de de ações. AÇÃO é um acontecimento que, a partir de de um estado inicial, após um período de de tempo finito, produz um estado final previsível e bem definido (Farrer, 1999). Todo ALGORITMO tem um início bem definido e um fim após um período finito de de tempo. SCEF 9

Algoritmo: Definição 3 ALGORITMO é a descrição de de um conjunto de de comandos que, obedecidos, resultam numa sucessão finita de de ações. AÇÃO é um acontecimento que, a partir de de um estado inicial, após um período de de tempo finito, produz um estado final previsível e bem definido (Farrer, 1999). O ALGORITMO não é a solução do do problema, mas sim a forma ou ou o meio de de obtê-la. SCEF 10

Algoritmo: Definição 3 ALGORITMO é a descrição de de um conjunto de de comandos que, obedecidos, resultam numa sucessão finita de de ações. AÇÃO é um acontecimento que, a partir de de um estado inicial, após um período de de tempo finito, produz um estado final previsível e bem definido (Farrer, 1999). Não existe uma única forma para um ALGORITMO: um problema pode ser resolvido de de várias maneiras. SCEF 11

Formas de representação Descrição narrativa A sequência de de ações para a solução do do problema é montada usando uma linguagem natural (língua portuguesa, por exemplo). Vantagem: não é necessário aprender nenhum conceito novo, pois a língua natural já é bem conhecida. Desvantagem: a língua natural abre espaço para várias interpretações, o que posteriormente dificultará a transcrição do algoritmo para uma linguagem de programação propriamente dita (Fortran, C, C++). SCEF 12

Formas de representação Fluxogramas Forma gráfica de de apresentação dos algoritmos, onde as as ações são representadas por formas geométricas predefinidas. Vantagem: o entendimento de elementos gráficos é mais fácil que o entendimento de textos. Desvantagem: é necessário aprender a simbologia dos fluxogramas e, além disso, o algoritmo resultante não apresenta detalhes, dificultando a sua transcrição para um programa em linguagem computacional. SCEF 13

Formas de representação Pseudocódigo Também chamada de de linguagem estruturada, reune um conjunto de de ações (ou comandos), usando uma linguagem simples e genérica, não associada com uma linguagem de de programação específica. Vantagem: a passagem do algoritmo para qualquer linguagem de programação é quase imediata, bastando conhecer as palavras reservadas da linguagem de programação que será utilizada. Desvantagem: é necessário aprender as regras do pseudocódigo. SCEF 14

Fluxogramas Símbolos gráficos mais usados Fonte: Ascencio e Campos SCEF 15

Exemplos Exemplo 1: Faça um algoritmo para mostrar o resultado da multiplicação de dois números. Descrição narrativa Passo 1: 1: Receber (ou (ou obter) os os dois dois números que que serão serão multiplicados. Passo 2: 2: Multiplicar os os números. Passo 3: 3: Mostrar o resultado obtido na na multiplicação. SCEF 16

Exemplos Exemplo 1: Faça um algoritmo para mostrar o resultado da multiplicação de dois números. Fluxograma Gerado com programa dia (linux) SCEF 17

Exemplos Exemplo 2: Faça um algoritmo para mostrar o resultado da divisão de dois números. Descrição narrativa Passo 1: 1: Receber os os dois dois números que que serão serão divididos. Passo 2: 2: Se Se o segundo número for for igual igual a zero, zero, não não poderá haver haver divisão, pois pois não não existe divisão por por zero; zero; caso caso contrário, dividir os os números. Passo 3: 3: Mostrar o resultado obtido na na divisão. SCEF 18

Exemplos Exemplo 2: Faça um algoritmo para mostrar o resultado da divisão de dois números. Fluxograma Gerado com programa dia (linux) SCEF 19

Pseudocódigo Também chamada de de linguagem estruturada, reune um conjunto de de ações (ou comandos), usando uma linguagem simples e genérica, não associada com uma linguagem de de programação específica. PORTUGOL Pseudo linguagem ou método de codificação em língua portuguesa de um algoritmo. Acrônimo formado pelas palavras PORTUguês + algol + PascaL, também conhecido como português estruturado, criado por Antonio Carlos Nicolodi e Antonio Manso em 1986. SCEF 20

PORTUGOL Por não se tratar de uma linguagem de programação propriamente dita, existem variações na codificação do Portugol. Portugol Studio (http://lite.acad.univali.br/portugol/) VisualG (http://visualg3.com.br/) Portugol IDE (http://www.dei.estt.ipt.pt/portugol/) Portugol Online (https://vinyanalista.github.io/portugol/) Ambiente de desenvolvimento integrado (IDE) de algoritmos, criado por Medeiros e Soares, que usa a codificação do Portugol proposta por Ascencio e Campos em 2007. SCEF 21

Formato de um pseudocódigo usando Portugol Online Início Início Lista Lista de de identificadores usados na na solução do do algoritmo. algoritmo bloco de declarações bloco de comandos fim_algoritmo Fim Fim Operações de de atribuição, aritméticas, lógicas, relacionais, etc, etc, usadas na na solução do do algoritmo. SCEF 22

Estruturas básicas num pseudocódigo Identificador Nome dado para uma constante ou ou variável. Regras para criação de identificadores underscore ou ou traço traço interior Podem ser usados números, letras (maiúsculas ou minúsculas) e o caractere _. Deve começar por uma letra (maiúscula ou minúscula) ou pelo caractere _. Portugol é case case sensitive: letra letra maiúscula é diferente de de letra letra minúscula Exemplo: identificador com com dado dado literal literal Maria é diferente de de outro outro com com dado dado literal literal maria SCEF 23

Estruturas básicas num pseudocódigo Identificador Nome dado para uma constante ou ou variável. Regras para criação de identificadores Não podem ser usados símbolos como $, #,!,?, &, +, - Não podem ser usados espaços em branco. # cerquilha ou ou number sign sign ou ou hash hash ou ou pound sign sign & ampersand ou ou e comercial ou ou eitza eitza Não pode ser usado o caractere (hífen). Não podem ser usadas palavras reservadas do pseudocódigo (leia, escreva, repita, etc) SCEF 24

Estruturas básicas num pseudocódigo Constantes e Variáveis Espaços reservados na na memória do do computador para armazenar elementos de de um um certo conjunto ou ou tipo tipo de de dados. Expressões Durante a execução do do algoritmo, combinam os os valores armazenados nas nas variáveis e constantes para calcular novos valores. SCEF 25

Estruturas básicas num pseudocódigo Constante Durante a execução do do algoritmo, o valor fixo da da constante não muda ao ao longo do do tempo. Variável Durante a execução do do algoritmo, o valor (ou (ou conteúdo) da da variável pode mudar ao ao longo do do tempo. SCEF 26

Tipos de dados (Constantes ou Variáveis) Numérico Lógico Usa Usa o sistema decimal, podendo ser ser um um número sem sem (inteiro) ou ou com com (real) (real) a parte parte fracionária (identificada por por um um ponto). O dado dado só só pode pode ser ser verdadeiro ou ou falso. falso. Literal O dado dado pode pode ser ser qualquer sequência de de caracteres (letras, números ou ou símbolos especiais), definidos entre entre aspas (exemplo: a, a, bola ). SCEF 27

Declaração de Constantes ou Variáveis Uma Uma vez vez definida uma uma variável ou ou constante, o identificador usado só só pode pode armazenar dados de de um um mesmo tipo. tipo. declare <lista de identificadores> tipo de dado Palavra reservada Relação de de constantes ou ou variáveis que que definem os os dados, separadas por por vírgula. Palavra-chave que que identifica o tipo tipo de de dado: numerico, logico ou ou literal. SCEF 28

Declaração de Constantes ou Variáveis A declaração do do identificador apenas define o tipo tipo de de dado. dado. Não Não é atribuído nenhum valor valor ao ao identificador nesta etapa. declare <lista de identificadores> tipo de dado algoritmo declare i, i, j, j, k numerico flag flag logico nome literal Bloco de declarações fim_algoritmo SCEF 29

Declaração de Constantes ou Variáveis Podem ser ser usados comentários na na declaração dos dos identificadores. O comentário é iniciado por por // // declare <lista de identificadores> tipo de dado algoritmo declare i, i, j, j, k numerico flag flag logico nome literal // // nome do do aluno Comentário fim_algoritmo SCEF 30

Operadores Meios pelos quais se se realizam operações sobre sobre as as variáveis e constantes. Tipos de operadores Operadores de atribuição Operadores aritméticos Operadores relacionais Operadores lógicos SCEF 31

Operadores de atribuição Usados para para atribuir valores para para os os identificadores ou ou operações entre entre eles. eles. Usamos o símbolo para para atribuir um um valor valor ao ao identificador. algoritmo declare x numerico y literal teste teste logico x 4 x x + 2 Bloco de atribuições y aula aula teste teste falso falso fim_algoritmo SCEF 32

Operadores aritméticos Usados para para operações com com valores numéricos entre entre constantes e variáveis. Básicos prioridade Menor Maior Operador Símbolo Exemplo soma + a b + c subtração - a b - c multiplicação * a b * c divisão / a b / c SCEF 33

Operadores aritméticos Usados para para operações com com valores numéricos entre entre constantes e variáveis. Pré-definidos Função Descrição Exemplo arredonda(x) Retorna o inteiro mais próximo do número real x parte_inteira(x) resto(x,y) Retorna a parte inteira do número real x Retorna o resto da divisão do número x pelo número y i arredonda(1.7) i parte_inteira(2.4) r resto(8,3) SCEF 34

Operadores aritméticos Usados para para operações com com valores numéricos entre entre constantes e variáveis. Pré-definidos Função Descrição Exemplo seno(x) cosseno(x) Retorna o seno do ângulo x (expresso em radianos) Retorna o cosseno ângulo x (expresso em radianos) ang seno(3.1415) ang cosseno(4.1415) SCEF 35

Operadores aritméticos Usados para para operações com com valores numéricos entre entre constantes e variáveis. Pré-definidos Função Descrição Exemplo potencia(a,b) raiz_quadrada(x) Retorna o número a elevado ao número b Retorna a raiz quadrada do número x p potencia(4,2) r2 raiz_quadrada(16) raiz_enesima(n,x) Retorna a raiz n do número x r3 raiz_enesima(3,8) SCEF 36

Operadores relacionais Usados na na comparação entre entre valores ou ou expressões, retornando como como resultado um um valor valor lógico (falso (falso ou ou verdadeiro). Operador Símbolo Exemplo Igual = a = b Maior que > a > b Menor que < a < b Maior ou igual a >= a >= b Menor ou igual a <= a <= b Diferente de <> a <> b SCEF 37

Operadores lógicos Relacionam entre entre si si valores ou ou expressões lógicas, resultando em em valores lógicos (falso (falso ou ou verdadeiro). Operador Símbolo Exemplo Conjunção: a conjunção de a e b é verdadeira se e somente se a e b são ambos verdadeiros. Disjunção: a disjunção de a e b é verdadeira se e somente se, pelo menos, um deles é verdadeiro. Negação: resulta na inversão do valor de a: se a é verdadeiro, resulta em falso; se a for falso, resulta em verdadeiro e ou nao a e b a ou b nao a SCEF 38

Prioridade entre os operadores Maior Maior Operadores aritméticos prioridade Menor Operadores relacionais Operadores lógicos não e ou 1 a 2 a 1 a 3 a 2 a ( a + b ) > ( c + d ) e ( e = 0 ) Maior Menor prioridade SCEF 39

Prioridade entre os operadores Algoritmo declare x, x, y, y, z numerico nome literal flag flag logico x 2 y 5 z 9 nome Maria flag flag falso falso fim_algoritmo Qual é o resultado desta operação? ( x + y > z ) e ( nome = Maria ) 2 + 5 7 > 9 falso e verdadeiro O resultado é falso SCEF 40

Prioridade entre os operadores Algoritmo declare x, x, y, y, z numerico nome literal flag flag logico x 2 y 5 z 9 nome Maria flag flag falso falso Qual é o resultado desta operação? ( flag ) ou ( y >= x ) 5 >= 2 falso ou verdadeiro O resultado é verdadeiro fim_algoritmo SCEF 41

Prioridade entre os operadores Algoritmo declare x, x, y, y, z numerico nome literal flag flag logico x 2 y 5 z 9 nome Maria flag flag falso falso fim_algoritmo Qual é o resultado desta operação? ( nao flag ) e ( parte_inteira(z / y) + 1 = x ) parte_inteira(1.8) 1 + 1 2 = 2 verdadeiro e verdadeiro O resultado é verdadeiro SCEF 42

Prioridade entre os operadores Algoritmo declare a, a, b, b, c numerico teste teste logico a 1 b 4.0 4.0 c 8 teste teste verdadeiro fim_algoritmo Qual é o resultado desta operação? ( nao teste ) ou ( resto(b,2) = 0.0 ) resto(4.0,2) 0.0 = 0.0 falso ou verdadeiro O resultado é verdadeiro SCEF 43

Prioridade entre os operadores Algoritmo declare a, a, b, b, c numerico teste teste logico a 1 b 4.0 4.0 c 8 teste teste verdadeiro Qual é o resultado desta operação? ( teste ) e ( nao teste ) verdadeiro e falso O resultado é falso fim_algoritmo SCEF 44

Prioridade entre os operadores Algoritmo declare a, a, b, b, c numerico teste teste logico a 1 b 4.0 4.0 c 8 teste teste verdadeiro fim_algoritmo Qual é o resultado desta operação? nao ( a + 1 >= raiz_quadrada(b) e teste ) 1 + 1 raiz_quadrada(4.0) 2.0 2 >= 2.0 verdadeiro e verdadeiro nao verdadeiro SCEF 45 O resultado é falso

Entrada de dados num pseudocódigo Definida pelo comando leia seguido do nome do identificador que recebe o valor de entrada. algoritmo declare dado1, dado2 numerico leia leia dado1 leia leia dado2 leia nome do do identificador Cada instrução leia corresponde a uma entrada de dados através do dispositivo de entrada (teclado). fim_algoritmo SCEF 46

Entrada de dados num pseudocódigo Definida pelo comando leia seguido dos nomes dos identificadores que recebem os valores de entrada. leia identificador_1, identificador_2,,, identificador_n Os dados são fornecidos um de cada vez, através do dispositivo de entrada (teclado). algoritmo declare dado1, dado2 numerico leia leia dado1, dado2 fim_algoritmo SCEF 47

Saída de dados num pseudocódigo Definida pelo comando escreva seguido do nome do identificador que terá seu valor de saída apresentado. algoritmo declare dado1, dado2 numerico leia leia dado1, dado2 escreva dado1 escreva nome do do identificador Os dados são apresentados através do dispositivo de saída (monitor), com cada instrução escreva em uma linha diferente. fim_algoritmo SCEF 48

Saída de dados num pseudocódigo Pode ser usado texto na saída dos dados. O texto deve ser colocado entre aspas, separado por uma vírgula do nome do identificador. escreva texto, nome do do identificador algoritmo declare dado1, dado2 numerico leia leia dado1 leia leia dado2 escreva valor =, =, dado1 fim_algoritmo SCEF 49

Saída de dados num pseudocódigo Podem ser apresentados mais de um dado de saída, com cada um dos dados separados por vírgula. escreva identificador_1, identificador_2,..., identificador_n algoritmo declare dado1, dado2 numerico leia leia dado1, dado2 escreva valor 1 =, =, dado1, valor valor 2 =, =, dado2 fim_algoritmo SCEF 50