Algoritmos e Tipos de Dados



Documentos relacionados
Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Aula 10 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO. Isac Aguiar isacaguiar.com.br

Resolução de problemas e desenvolvimento de algoritmos

Introdução à Programação e Algoritmos. Aécio Costa

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Programação II. Aula 2

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Processamento da Informação Teoria. Algoritmos e Tipos de dados

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

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

Introdução à Computação para o Ensino Médio. Centro Técnico Científico

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

UFRPE Prof. Gustavo Callou

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

Algoritmos e Programação de Computadores

10/02/2015. As linguagens. Algoritmos e Lógica de programação. Os produtos. Os ingredientes. Introdução. Atuais:.Net Java Delphi PHP

Algoritmos com VisuAlg

1.1. Organização de um Sistema Computacional

Algoritmos. Cláudio Barbosa

Introdução a Algoritmos Parte 04

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba

Sistema de Computação

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Estruturas de Controle A Tomada de Decisões

Algoritmo e Lógica de Programação Algoritmos Parte 1

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Sessão 2 UFCD 0804 Algoritmos

ICC Introdução para JavaScript

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

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

Lógica. Everson Santos Araujo

Algoritmo e Programação

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Disciplina: Organização de computadores

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Algoritmos e Programação Parte Teórica

2. Representação Numérica

Conceitos Importantes:

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Dadas a base e a altura de um triangulo, determinar sua área.

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

Aula 2 Variáveis. Precisamos armazenar os tipos de dados da aula anterior (inteiros, reais, literais e lógicos) em memória. Como fazer?

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

ALGORITMOS E FLUXOGRAMAS

Linguagem algorítmica: Portugol

Aula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Autómatos Finitos Determinísticos

Introdução à Lógica de Programação (cont.)

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Unidade Central de Processamento Organização da UCP Execução de instruções em paralelo ("pipeline") Execução de programas

Introdução à Organização e Arquitetura de Computadores. Prof. Leonardo Barreto Campos 1

1 Lógica de Programação

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

3 Sistemas de Numeração:

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Algoritmos e Programação de Computadores I. Prof. Eduardo

Lista de Exercícios 03b Algoritmos Repetição

TÉCNICAS DE PROGRAMAÇÃO 1 INTRODUÇÃO A ALGORITMOS

Algoritmos e Linguagem de Programação de Computadores I

ESTRUTURA CONDICIONAL

Algoritmos e Programação _ Departamento de Informática

LÓGICA DE PROGRAMAÇÃO

Princípios de funcionamento dos computadores

Aula 4 Instruções Primitivas

Algoritmos Computacionais ( Programas )

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

AULA TEÓRICA 10 Tema 9. Introdução à programação. Desenho de Algoritmos

O modelo do computador

Estruturas de Repetição Parte II PARA-ATÉ

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

Lógica de Programação

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Lição 1 Introdução à programação de computadores

ARQUITETURA DE COMPUTADORES

ALGORITMOS. Supervisão: Prof. Dr.º Denivaldo Lopes

Aula 26: Arquiteturas RISC vs. CISC

Algoritmos e Estrutura de Dados I

TÉCNICAS DE PROGRAMAÇÃO 1 ESTRUTURAS DE CONTROLE

Aula 2 Modelo Simplificado de Computador

Programação Estruturada

Programação 1. Rafael Vargas Mesquita. ftp://ftp.ci.ifes.edu.br/informatica/mesquita/

e à Linguagem de Programação Python

A Unidade Central de Processamento é a responsável pelo processamento e execução de programas armazenados na MP.

COMPUTADOR SIMPLIFICADO E COMPUTADOR DIGITAL. Algoritmos e Programação APG0001

Lista de Exercícios 03b Repetição. 63) Escreva um programa que receba números do usuário enquanto eles forem positivos e

Arquitetura de Computadores. Prof. Marcelo Mikosz Gonçalves

Programação para Computação

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

Transcrição:

Algoritmos e Tipos de Dados 2015/1 Programação Básica de Computadores (INF 09325) Archimedes Detoni www.inf.ufes.br/~archimedesdetoni archimedesdetoni@inf.ufes.br

Programa / Bibliografia 1. Conceitos básicos 1. Introdução à computação 2. Algoritmos: narrativa, fluxogramas e pseudocódigo 3. Tipos básicos de dados: numéricos, literais, lógicos L. C. Saliba. Técnicas de Programação: Uma Abordagem Estruturada. Pearson / Makron Books, 1993;.W..Capítulo 1 Introdução.Capítulo 2 Formas de Representação de Algoritmos.Capítulo 3 Tipos de Dados 2

Introdução à Computação Ciência nova Pouco mais de 50 anos Computar é calcular resultados por meio de dados Não necessariamente com computadores 3

Histórico O primeiro computador eletrônico foi construído no séc. XX, chamado ENIAC (Electronic Numerical Integrator And Computer) 140 quilowatts de energia elétrica; 18.000 válvulas; 1.500 relés; 30 toneladas. 4

Informática / Computadores Tratamento Grande quantidade Alta velocidade Precisão Automatização Uso de dados de programas de computador Diversas áreas 5

Computador John Von Neumann, pesquisador envolvido no projeto do ENIAC, construiu para o Instituto de Estudos Avançado de Princeton (Princeton Institute of Advanced Studies IAS) a máquina IAS; Ele imaginou que os programas poderiam ser representados em formato digital na memória, junto com os dados; Arquitetura de Von Neumann: Ciclo de Von Neumann: Busca-Decodifica-Executa 6

Computador Utilização básica Entrada Processamento Saída Formação básica Processador, memória, dispositivos de E/S Possuem um conjunto de instruções que são interpretáveis, como qualquer dispositivo 7

Programação de Computadores Computador Programação de Computadores Uma máquina de processar dados, numéricos ou simbólicos, que precisa de programas escritos em uma linguagem de programação para executar tarefas úteis. Tarefa de interpretar um determinado problema, organizá-lo e codificá-lo de modo a ser entendido (interpretável) pela máquina; Programa Produto final da tarefa de programação; Sequência de instruções codificadas em uma linguagem de programação, ou seja, que pode ser executadas por um computador. 8

Programação de Computadores Etapas de programação: Entendimento do problema a ser resolvido (análise); Planejamento de uma solução (modelagem); Formalização da solução usando uma linguagem de programação (codificação); Verificação da conformidade da solução obtida com o problema proposto (teste). 9

Linguagens de Programação No início Baixo nível Instruções primitivas, próximas à linguagem de máquina Atualmente Alto nível Instruções próximas à linguagem natural 10

Algoritmos Sequência finita e ordenada de instruções não ambíguas, com o propósito de solucionar determinado problema; possui fim, ordem e precisão Exemplo escovar os dentes: 1. Pegar a escova e a pasta de dentes; 2. Colocar um pouco de pasta sobre as cerdas da escova; 3. Escovar os dentes do maxilar inferior; 4. Escovar os dentes do maxilar superior; 5. Expelir da boca o excesso de espuma; 6. Bochechar um pouco de agua; 7. Lavar a escova e guarda-la; 8. Enxugar o rosto. 11

Algoritmos A descrição do algoritmo contém a lógica da solução do problema (modelagem) descrição de o que a máquina deve fazer para resolvê-lo; Sem preocupação de como a máquina vai executar a solução (liberdade de forma - sintaxe). A codificação do algoritmo usando uma linguagem de programação (rigor formal sintaxe bem definida) é que permite ao computador interpretar e executar as instruções. 12

Algoritmos e LPs (Ling. Prog.) O nível de detalhamento da LP (Linguagem de Programação) e suas ferramentas influencia a lógica efetuada pelo programador. Exemplo: calcular a média de 2 números 1. Ler os números; 2. Somar os 2 números; 3. Dividir por 2 o resultado da soma; 4. Imprimir o resultado. 1. ler a e b 2. s = a + b 3. m = s / 2 4. imprimir m 1. ler a e b 2. m = (a + b)/2 3. imprimir m, decimal 13

Formas de Representação Descrição Narrativa - algoritmos são expressos diretamente em linguagem natural; pouco usada porque o uso da linguagem natural muitas vezes é ambígua e imprecisa; Troca de um pneu furado: Tomando um banho: Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas Entrar no banheiro Tirar a roupa Abrir a torneira do chuveiro Entrar na água Ensaboar-se Sair da água Fechar a torneira Enxugar-se Vestir-se 14

Descrição Narrativa Alto nível de abstração Linguagem natural Más interpretações, ambiguidades e imprecisões Exemplo [Saliba, 1992, p. 5]: Obter as notas da primeira e da segunda provas; Calcular a média aritmética entre as duas; Se a média for maior que 7 o aluno foi aprovado, senão ele foi reprovado. 15

2.2 Fluxograma Convencional Algoritmo e Lógica de programação É uma representação gráfica de algoritmos onde formas geométricas difere implicam ações (instruções, comandos) distintos. Tal propriedade facilita o entendimento contidas nos algoritmos e justifica sua popularidade. Esta representação é pouco usada na prática porque o uso daidéias linguagem natural as vezes dá oportunidade a más interpretações, ambigüidades e imprecisões. Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocó (subitemda seguinte), Por exemplo, a instrução "afrouxar ligeiramente as porcas" no algoritmo troca depois é menos imprecisa que a primeira e, no entanto, não se preocupa detalhes de implementação do programa, como o tipo das variáveis usadas. us está sujeita a interpretações diferentes por pessoas distintas. Uma instrução mais isa seria: "afrouxar a porca, girando-a 30º no sentido anti-horário". Nota-se que os fluxogramas convencionais preocupam-se com detalhes de nível f da implementação do algoritmo. Por exemplo, figuras geométricas diferentes são adota para representar operações de saída de dados realizadas em dispositivos distintos, como Fluxograma Convencional fita magnética ou um monitor de vídeo. Como esta apostila não está interessada em deta físicos da implementação, mas tão somente com o nível lógico das instruções do algori É uma representação gráfica de algoritmos onde formas geométricas diferentes será adotada a notação simplificada da Figura 2.1 para os fluxogramas. De qualquer mod icam ações (instruções, comandos) distintos. Tal propriedade facilita Apêndice o entendimento dasuma tabela com os símbolos mais comuns nos fluxogramas convencion A contém as contidas nos algoritmos e justifica sua popularidade. Fluxograma Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos. Início e final do fluxograma Esta forma é aproximadamente intermediária à descrição narrativa e ao pseudocódigo item seguinte), pois é menos imprecisa queo a primeira e, no entanto, não se preocupa com ideias contidas nos Facilita entendimento das lhes de implementação do programa, como o tipo das variáveis usadas. algoritmos e é menos imprecisa. Nota-se que os fluxogramas convencionais preocupam-se com detalhes de nível físico Operação de entrada de dados mplementação do algoritmo. Por exemplo, figuras geométricas diferentes são adotadas deum representar operações saída de dados realizadas em dispositivos distintos, como uma pouco mais precisa magnética ou um monitor de vídeo. Como esta apostila não está interessada em detalhes os da implementação, tão somente com o nível lógico das instruções do algoritmo, mas Sem detalhes de implementação adotada a notação simplificada da Figura 2.1 para os fluxogramas. De qualquer modo, o Operação de saída de dados ndice A contém uma tabela com os símbolos mais comuns nos fluxogramas convencionais. Início e final do fluxograma Operação de atribuição Operação de entrada de dados Operação de saída de dados Decisão 16 Figura 2.1 Principais formas geométricas usadas em fluxogramas.

execução do algoritmo começa, e um ou mais símbolos finais, que são pontos onde a execução do algoritmo se encerra. Partindo do símbolo inicial, há sempre um único caminho orientado a ser seguido, representando a existência de uma única seqüência de execução das instruções. Isto pode ser melhor visualizado pelo fato de que, apesar de vários caminhos poderem convergir para uma mesma figura do diagrama, há sempre um único caminho saindo desta. Exceções a esta regra são os símbolos finais, dos quais não há nenhum fluxo saindo, e os símbolos de decisão, de onde pode haver mais de um caminho de saída (usualmente dois caminhos), representando uma bifurcação no fluxo. Exemplo - Fluxograma A Figura 2.2 mostra a representação do algoritmo de cálculo da média de um aluno sob a forma de um fluxograma. Início N1, N2 MEDIA aaa (N1 + N2) / 2.V. MEDIA >= 7 "Aprovado".F. "Reprovado" Fim 17 Figura 2.2 Exemplo de um fluxograma convencional.

Pseudocódigo Pseudocódigo (linguagem estruturada ou Portugol) permite uma representação mais rica em detalhes, como p. ex. declaração de variáveis; Maior rigor sintático e semelhança com as LPs Estrutura geral: Algoritmo <nome_do_algoritmo> Var <declaração_de_variáveis> <subalgoritmos> Início <corpo do algoritmo> Fim. 18

Exemplo - Pseudocódigo Algoritmo Calculo_Media Var n1, n2, media: real Início Leia n1, n2 media (n1 + n2) / 2 Se media >= 7 Então Escreva Aprovado Senão Escreva Reprovado Fim_se Fim 19

Escolha da LP influencia no Algoritmo O nível de detalhamento da LP (Linguagem de Programação) e suas ferramentas influencia a lógica efetuada pelo programador. Exemplo: calcular a média de 2 números 1. Ler os números; 2. Somar os 2 números; 3. Dividir por 2 o resultado da soma; 4. Imprimir o resultado. 1. ler a e b 2. s = a + b 3. m = s / 2 4. imprimir m 1. ler a e b 2. m = (a + b)/2 3. imprimir m, decimal

Exemplo de Programa na LP C

Tipos de Dados Algoritmos são compostos por Instruções: manipulam dados Dados: porção de informações a serem processadas Não são, necessariamente, numéricos Tipos dos dados definem o que se pode fazer com eles 22

Dados Numéricos Inteiros Naturais (N) e Inteiros (Z) Reais Racionais (Q) e Irracionais (R) Utilização de. 23

Dados Literais Sequência de caracteres Letras, dígitos ou símbolos Strings (Alfanumérico) Delimitação por aspas duplas Exemplos Asdfg PBC $ 200 123 0 ==> Diferente de 0 24

Dados Lógicos Valores Booleanos (George Boole) VERDADEIRO True.V. FALSO False.F. 25

Exercícios 1. Descreva um algoritmo para resolver o seguinte problema: Dispõe-se de três vasilhas, sendo duas com capacidades de 9 e 4 litros respectivamente. As vasilhas não têm nenhum tipo de marcação, de modo que não é possível ter medidas como metade ou um terço. Como se pode usar as vasilhas de 9 e 4 litros para encher a terceira vasilha de medida desconhecida com seis litros de água. 2. Descreva os seguintes algoritmos utilizando as formas indicadas: Fazer café (narrativa); Calcular a área de um trapézio (fluxograma).

Exercícios 3. Passe o algoritmo abaixo para a forma de um fluxograma: Algoritmo Par_Impar Var num: inteiro Início Escreva Digite um número inteiro maior que zero: Leia num Se (num % 2 = 0) Então Escreva Número é Par. Senão Escreva Número é Ímpar. Fim_se Fim

Exercícios 4 - Dado o algoritmo em descrição narrativa abaixo, escreva-o em forma de fluxograma e pseudocódigo. Multa em um radar de trânsito: Obter a velocidade do veículo e a velocidade máxima permitida; Adicionar 10% de tolerância à velocidade máxima permitida; Se a velocidade do veículo for maior que a máxima, deve ser multado. 28

Exercícios 5 - Dado o algoritmo em descrição narrativa abaixo, escreva-o em forma de fluxograma e pseudocódigo. Cálculo da alíquota do imposto de renda: Obter o salário mensal do contribuinte; Multiplicar por 13 e obter rendimento anual; Se for até R$ 19.645,32, o contribuinte é isento; Entre R$ 19.645,33 e R$ 29.442,00 é de 7,5%; Entre R$ 29.442,01 e R$ 39.256,56 é de 15%; Entre 39.256,57 e R$ 49.051,80 é 22,5%; Acima de R$ 49.051,80 é de 27,5%. 29

Exercícios 6 - [Saliba, 1992, p. 14] Classifique os dados especificados abaixo de acordo com seu tipo, sendo I para inteiros, R para reais, S para strings (literais), B para booleanos (lógicos) e N para os quais não é possível definir um tipo de dado. ()0 ()1 ( ) 0.0 ( ) 0. ( ) -1 ( ) -32 ( ) +36 ( ) +32. ( ) -0.001 ( ) +0.05 ( ) +3257 ( ) a ( ) +3257 ( ) +3257. ( ) -0.0 ( ).F. ( ) -0.0 ( ).V. ()V ( ) abc ()F ( ).F ( ) V ( ).F. 30

Exercício 4 - Resolução Algoritmo radar Var velocidadeveiculo, velocidademaxima : Real Início Leia velveiculo, velmaxima velmaxima = velmaxima + (velmaxima / 10) Se velveiculo > velmaxima Então Escreva Multado! Senão Escreva OK! Fim_se Fim. 31

Exercício 5 - Resolução Algoritmo AliquotaImposto Var rendimentoanual, rendimentomensal : Real Início Leia rendimentomensal rendimentoaual = rendimentomensal * 12 Se rendimentoanual <= 19645.32 Então Escreva "Isento" Senão Se rendimentoanual <= 29442.0 Então Escreva "Alíquota de 7,5%" Senão Se rendimentoanual <= 39256.56 Então Escreva "Alíquota de 15%" Senão Se rendimentoanual <= 49051.80 Então Escreva "Alíquota de 22,5%" Senão Escreva "Alíquota de 27,5%" Fim_se Fim_se Fim_se Fim_se Fim. 32

Exercício 6 - Resolução (I) 0 (I) 1 (R) 0.0 (R) 0. (I) -1 (I) -32 (I) +36 (R) +32. (R) -0.001 (R) +0.05 (I) +3257 (L) a (L) +3257 (L) +3257. (L) -0.0 (L).F. (R) -0.0 (B).V. (N) V (L) abc (N) F (N).F (L) V (B).F. 33