Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Documentos relacionados
INFORMÁTICA APLICADA AULA 02 ALGORITMOS

ALGORITMOS AULA 1. Profª Amanda Gondim

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

Algoritmos e Técnicas. Lógica de Programação. É a técnica de encadear pensamento para atingir determinado objetivo.

Revisão Histórico das Linguagens de Programação

Algoritmos. Prof. Jonatas Bastos Site:

Algoritmos e Linguagem de Programação I

Algoritmos e Técnicas de Programação

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES

OFICINA DA PESQUISA. Prof. Msc. Carlos José Giudice dos Santos

Projeto de Algoritmos

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo

GFM015 Introdução à Computação. Algoritmos. Ilmério Reis da Silva UFU/FACOM

PROGRAMAÇÃO I. Introdução

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Computação I: Representações de Algoritmos

Introdução à Programação. Ceça Moraes

Capítulo 1 - Lógica e Algoritmos

Microcontroladores. Programação: fluxogramas, pseudocódigos e lógica. Prof. Daniel

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Aula 2 - Introdução Cleverton Hentz

Construção de Compiladores. Capítulo 1. Introdução. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2014.

Slides trabalhados durante a quinta aula

Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes

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

2 Fluxogramas e Pseudocódigo. 18 Programação em C/C++ estrutura básica e conceitos fundamentais

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

Arquitetura e Organização de computadores

Linguagem de Descrição de algoritmos

Programação de Computadores:

LÓGICA E LINGUAGEM DE PROGRAMAÇÃO. Introdução

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Introdução a Programação

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Linguagens de Programação Classificação

Introdução à Computação: Máquinas Multiníveis

2 Fluxogramas e Pseudocódigo

Programação de Computadores III

Algoritmo de Programação. Aula1

Algoritmos e Programação

CONCEITO DE COMPUTADOR. O que é um computador?

Noções de Algoritmos

Subalgoritmos. algoritmo completo é dividido num algoritmo principal e em diversos subalgoritmos (tantos quantos forem necessários ou convenientes).

O que é um Algoritmo?

Programação de Computadores III

Aula 02. Algoritmos e Pseudocódigo

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

CONCEITOS DE ALGORITMOS

Introdução à Algoritmos. Professora: Fabíola Gonçalves.

Ivanovitch Medeiros Dantas da Silva. Natal, 01 de setembro de 2011

Fluxogramas. Leandro Tonietto ago-09

Linguagens de Programação Aula 3

Linguagens de Programação

LÓGICA DE PROGRAMAÇÃO 1

Programação de Computadores III

Estruturas de Seleção Seleção Simples e Composta (parte 1)

Introdução à Programação de Computadores Parte I. Componentes Básicos do Computador e de um Programa

Vamos estudar o que se entende por «programação», que é uma linguagem de programação e ver algumas terminologias própria de programação e como

Introdução aos Algoritmos. Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Unidade 2: Algoritmos e programação

Lógica. Necessida de se usar lógica. Solucionar problemas Eficiência e eficácia Boa performance de conhecimento

Linguagem de Programação 1. Introdução

Introdução à Computação: Máquinas Multiníveis

Algoritmos e Estruturas de Dados

INTRODUÇÃO À PROGRAMAÇÃO

Infra-Estrutura de Hardware

LÓGICA DE PROGRAMAÇÃO. Prof. Welber Ribeiro da Silva

Compiladores. Introdução à Compiladores

Algoritmos. Um algoritmo pode ser expresso de diversas maneiras, dentre elas: Linguagem Natural Fluxograma Pseudocódigo Linguagem de Programação

Algoritmos Computacionais

Aula 02. MC Algoritmos e Programação de Computadores. Algoritmos: Definição e Exemplos.

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

Algoritmos e Programação

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage. Conceitos inicias

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

Algoritmo. Conjunto finito de instruções que permitem a realização de uma tarefa. 2.1: Introdução 2. ALGORITMOS

Unidade 2: Fundamentos da Programação de Computadores Prof. Daniel Caetano

2. ALGORITMOS. Unesp Campus de Guaratinguetá

Estruturas de Repetição Parte I ENQUANTO-FAÇA

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

TÉCNICO DE INFORMÁTICA - SISTEMAS

Noções de algoritmos - Aula 1

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

Algoritmos e Programação

Lógica de Programação

Conceitos Básicos de Algoritmos

Algoritmos e Técnicas de Programação

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

Objetivo: Desenvolver algoritmos a partir de problemas

Aula 2 - Programação de Computadores - CI208 1/21

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

Estruturas de Seleção Parte II Seleção Encadeada

Algoritmos Fundamento e Prática

INTRODUÇÃO A ALGORITMOS

Sistemas Operacionais

ALGORITMOS E ESTRUTURAS DE DADOS I (Parte 1)

Introdução à Algoritmos INF 1005 e INF Programação I

Transcrição:

Algoritmos e Linguagens de Programação Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Conceitos Básicos Para dizer o que um computador deve fazer devemos programá-lo através de instruções específicas!! Ada Lovelace a primeira programadora Computadores são construídos para executar tarefas bem determinadas a partir de um conjunto limitado de instruções. o E.g.: somar, subtrair, realizar decisões lógicas (x é menor que y?) 2

Conceitos Básicos Inicialmente cada máquina entendia um conjunto de instruções próprias o Instruções de uma máquina não eram exatamente iguais as instruções de outra máquina. o Dificuldade em programar diferentes máquinas Para um ser humano, a linguagem de máquina é de difícil compreensão. 00000000 00101000 00001110 01000100 00011110 11100111 3

Conceitos Básicos Primeira Geração de Linguagens 4

Conceitos Básicos Segunda Geração de Linguagens (baixo nível) o Uso de linguagem escrita o Uso de mnemônicos mais fácil de memorizar e utilizar o Uso de um montador assembler para tradução Linguagem Assembly Linguagem de Máquina ADD $t1, t2, $t3 04CB: 0000 0100 1100 1011 OR $t3, $t1, $t2 029A: 0000 0010 1001 1010 5 o Cada unidade de processamento utiliza sua própria linguagem (famílias: x86, x64, ARM / marcas: intel / AT&T)

Conceitos Básicos Terceira Geração de Linguagens (alto nível) o Linguagens projetadas para ser entendidas mais facilmente pelos humanos o Expressões similares a matemática e álgebra o Uso de nomes para variáveis o O texto pode ser convertido para uma linguagem de montagem 6

Conceitos Básicos Linguagem Natural Linguagem de Programação Linguagem de Máquina Linguagens de Alto Nível (e.g. C, Pascal, Java, Python) Linguagens de Baixo Nível (e.g. Assembly) 7

Conversão entre Linguagens Compiladores: tradutores que mapeiam programas escritos em linguagem de alto nível para programas equivalentes em linguagem de baixo nível. Montadores: tradutores de linguagem de baixo nível em linguagem de máquina para um dado computador em particular. Montador Compilador Programas em linguagem de baixo nível Programa em linguagem de alto nível 8 Programa em linguagem de máquina Compilação

Conceitos Básicos Software ou Programas são escritos de forma que o hardware do computador possa entender o que deve ser feito o Descrever a ideia / lógica / passo-a-passo de como processar a entrada para se chegar a saída (Algoritmo - Código); 9

Algoritmo Algoritmo é uma sequência de passos que visa atingir um objetivo bem definido (FORBELLONE, 1999) Algoritmo é a descrição de uma sequência de passos que deve ser seguida para a realização de uma tarefa (ASCENCIO, 1999) Algoritmo é uma sequência finita de instruções ou operações cuja execução (...) resolve um problema computacional, qualquer que seja sua instância (SALVETTI, 1999) 10

Algoritmo Somar três números: 1. Receber três números; 2. Somar os três números; 3. Mostrar o resultado obtido. 11

Algoritmo Fazer um sanduíche: 1. Pegar pão; 2. Cortar o pão ao meio; 3. Pegar a maionese; 4. Passar a Maionese no pão; 5. Pegar e cortar alface e tomate; 6. Colocar os pedaços de alface e tomate no pão; 7. Pegar o hambúrguer; 8. Fritar o hambúrguer; 9. Colocar o hambúrguer no pão; 12

Algoritmo Trocar uma lâmpada Sacar dinheiro no banco Calcular a média de dois números (Podem existir mais de um algoritmo para um mesmo problema) Para se elaborar um algoritmo é necessário entender o problema que se deseja resolver, definir os dados de entrada, o processamento e os dados de saída. 13

Tipos de Algoritmos Descrição narrativa: escrever os passos em linguagem natural (e.g. português) [+] não é necessário aprender uma nova simbologia; [-] abre espaço para várias interpretações; Fluxograma: utilização de símbolos e escrita [+] menos escrita, e menor margem de múltiplas interpretações [-] aprender a simbologia e apresenta poucos detalhes ENTRADA DE DADOS CÁLCULOS E ATRIBUIÇÕES TOMADA DE DECISÃO SAÍDA DE DADOS N1, N2 M = (N1 + N2) M > 0 M 14

Tipos de Algoritmos Fluxograma Principais blocos de construção: INDICA INÍCIO DO ALGORITMO INÍCIO INDICA FIM DO ALGORITMO FIM ENTRADA DE DADOS N1, N2 CÁLCULOS E ATRIBUIÇÕES M = (N1 + N2) TOMADA DE DECISÃO M > 0 SAÍDA DE DADOS M 15

Tipos de Algoritmos Fluxograma: o E.g.: Somar três números e mostrar o resultado ENTRADA DE DADOS CÁLCULOS E ATRIBUIÇÕES INÍCIO N1, N2, N3 S = N1 + N2 + N3 FIM S SAÍDA DE DADOS 16

Tipos de Algoritmos Fluxograma: o E.g.: Calcular a média entre dois valores ENTRADA DE DADOS CÁLCULOS E ATRIBUIÇÕES INÍCIO N1, N2 M = (N1 + N2)/2 FIM M SAÍDA DE DADOS 17

Tipos de Algoritmos Fluxograma: o E.g.: Calcular a média de um aluno com duas notas e dizer se ele está aprovado ou não ENTRADA DE DADOS CÁLCULOS E ATRIBUIÇÕES INÍCIO N1, N2 M = (N1 + N2)/2 SAÍDA DE DADOS FIM APROVADO SIM M >= 7 TOMADA DE DECISÃO EXAME NÃO 18 OBS: Quando queremos mostrar uma palavra a colocamos entre aspas!

Tipos de Algoritmos Fluxograma: o E.g.: Calcular um somatório ENTRADA DE DADOS CÁLCULOS E ATRIBUIÇÕES INÍCIO N N = 0 SAÍDA DE DADOS I = 0 M NÃO I <= N FIM SIM S = S+I TOMADA DE DECISÃO 19 I = I+1 REPETIÇÃO

Exercício Escreva os seguintes algoritmos em fluxograma: Receber um número, aumentá-lo em dois, e mostrar o valor resultante. Receber quatro números que representam notas de um aluno durante o ano letivo e calcular a sua média final. Como seria um algoritmo que recebe o número de faltas de um aluno durante o ano letivo e determina se ele reprovou por frequência (dez ou mais faltas) ou não. E se fossem informados quatro valores, cada um indicando o número de faltas por bimestre? 20

Tipos de Algoritmos Pseudocódigo ou portugol: escrita por regras pré-definidas [+] parecido com o fluxograma [+] similar a uma linguagem que o computador entende [-] aprender as regras de pseudocódigo o E.g.: Somar três números e mostrar o resultado ALGORITMO DECLARE N1,N2,N3,S LEIA N1,N2,N3 S = N1 + N2 + N3 ESCREVA S FIM_ALGORITMO (informa o início) (ingredientes) (entrada de dados) (cálculo e atribuição) (saída de dados) (informa o fim) 21 OBS: Note que os desenhos do fluxograma foram trocados por palavras-chaves

Tipos de Algoritmos Pseudocódigo ou portugol: o E.g.: Calcular a média entre dois valores ALGORITMO DECLARE N1, N2, M LEIA N1, N2 M = (N1 + N2) / 2 ESCREVA M FIM_ALGORITMO 22

Tipos de Algoritmos Pseudocódigo ou portugol: o E.g.: Calcular a média de um aluno com duas notas e dizer se ele está aprovado ou não ALGORITMO DECLARE N1, N2, M LEIA N1, N2 M = (N1 + N2) / 2 SE M 7 (tomada de decisão) ESCREVA APROVADO (se M 7) SENÃO ESCREVA EXAME (se M < 7) FIM_ALGORITMO 23

Tipos de Algoritmos Pseudocódigo ou portugol: o E.g.: Calcular um somatório ALGORITMO DECLARE S, N, I LEIA N S = 0 I = 0 ENQUANTO I <= N S = S + I I = I+1 ESCREVA S FIM_ALGORITMO (REPETIÇÃO) 24

Exercício Escreva os seguintes algoritmos em pseudocódigo: Receber um número, aumentá-lo em dois, e mostrar o valor resultante. Receber quatro números que representam notas de um aluno durante o ano letivo e calcular a sua média final. Como seria um algoritmo que recebe o número de faltas de um aluno durante o ano letivo e determina se ele reprovou por frequência (dez ou mais faltas) ou não. E se fossem informados quatro valores, cada um indicando o número de faltas por bimestre? 25

Interessante Ferramenta de auxílio no estudo de programação: VisualAlg Parecido com uma linguagem em alto nível mas escrito em português e com auxílio visual de execução 26

Linguagem de Programação Alto Nível Vamos conhecer duas linguagens de programação de alto nível e escrever alguns exemplos... Linguagem C Linguagem JAVA 27

Game Based Learning Existem diversas páginas na internet que oferecem ferramentas de programação, tutoria e ensino https://studio.code.org/s/mc https://www.robomindacademy.com/go/navigator/courses https://blockly-games.appspot.com/?lang=en http://br.codecombat.com/play?hour_of_code=true 28

Algoritmos e Linguagens de Programação Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger