• Nenhum resultado encontrado

Introdução à programação Introdução à programação

N/A
N/A
Protected

Academic year: 2022

Share "Introdução à programação Introdução à programação"

Copied!
31
0
0

Texto

(1)

Introdução à programação Introdução à programação

Alexandre Mota acm@cin.ufpe.br

(2)

Qual sua expectativa sobre o curso?

Qual sua expectativa sobre o curso?

(3)

Resultados de Esforço em Programação

Resultados de Esforço em Programação

Mas programação não é brincadeira, apesar de muitos acharem divertido. Programar

consiste em criar o jogo ou solução. Não jogar…

(4)

Como calcular?

Como calcular?

2 x 3 + 16 / 2 = ?

1o, resolvem-se as multiplicações e divisões

6 + 8 = ?

2o, resolvem-se as adições e sub- trações

14

(5)

Moral da história Moral da história

— Mesmo para resolver expressões simples, precisamos da noção de

— de cálculos

— Tal ordem advém do passo-a-passo que temos que seguir para resolver

corretamente as expressões ORDEM

(6)

Algoritmo Algoritmo

— A esta sequência de regras, cuja ordem de aplicação é importante de ser observada, é o que se chama de

— Algoritmos são descritos em linguagem

precisa, mas não têm relação direta com o computador

São os passos requeridos para resolver um problema…

ALGORITMO

(7)

Exemplo de Algoritmo (informal) Exemplo de Algoritmo (informal)

Algoritmo 1: Bolo de Cenoura Ingredientes:

2 cenouras grandes 1 xícara de óleo 2 xícaras de açúcar

4 ovos 2 xícaras de farinha de trigo 1 colher de sopa de fermento em

1 lata de leite condensado 4 colheres de chocolate em pó 2 colheres de sopa de margarina Modo de Preparo:

1. Bata no liquidificador as cenouras, o açúcar, os ovos e o óleo até obter um creme.

2. Despeje esse creme em uma vasilha e acrescente a farinha.

3. Bata na batedeira por 4 minutos em velocidade alta.

4. Acrescente o fermento e misture.

5. Coloque em uma forma untada por uns 30 a 35 minutos.

6. Retire do forno e coloque a cobertura!

(8)

Algoritmos computacionais Algoritmos computacionais

— Algoritmos usados em problemas

computacionais requerem mais precisão que o exemplo da receita de bolo

— Tais algoritmos precisam de

Linguagem simples e precisa

Cujos elementos possuam significado único (evitar ambiguidade)

(9)

Exemplo de algoritmo computacional

Exemplo de algoritmo computacional

Algoritmo: Calcular divisão X / Y Entrada: Números reais X e Y Passos:

1. Se Y for diferente de zero então 1. Divide-se X por Y

2. Apresenta resultado

2. Se Y for igual a zero então

1. Apresenta mensagem de erro

Saída: Número real ou mensagem de erro

(10)

Exemplo de algoritmo computacional

Exemplo de algoritmo computacional

Algoritmo: Calcular divisão X / Y Entrada: Números reais X e Y Passos:

1. Se Y ≠ 0 então

1. Divide-se X por Y 2. Apresenta resultado 2. Se Y = 0 então

1. Apresenta mensagem de erro

Saída: Número real ou mensagem de erro

(11)

Exemplo de algoritmo computacional

Exemplo de algoritmo computacional

Algoritmo: Calcular divisão X / Y Entrada: Números reais X e Y Passos:

1. Se Y ≠ 0 então

1. Divide-se X por Y 2. Apresenta resultado 2. Caso contrário

1. Apresenta mensagem de erro

Saída: Número real ou mensagem de erro

(12)

Fluxograma: Algoritmo gráfico

Fluxograma: Algoritmo gráfico

(13)

Exercício Exercício

— Assumindo os comandos: Ler(X),

Mostrar(E), Se … então …, X > Y, X = Y

— Pede-se: construa um algoritmo que

determina o maior entre dois números

Se E for uma frase, usar ‘ e ‘

(14)

Exercício: resposta Exercício: resposta

— 1. Ler(X)

— 2. Ler(Y)

— 3. Se X > Y então

— 3.1 Mostrar(X)

— 4. Caso contrário

— 4.1 Se X = Y então

— 4.1.1 Mostrar(‘Números iguais’)

— 4.2 Caso contrário

— 4.2.1 Mostrar(Y)

(15)

Exercício Exercício

— Assumindo os comandos: Ler(X),

Mostrar(E), X ç Y, Raiz(X), Se … então

…, X ≥ Y

— Pede-se: construa um algoritmo que

determina as raízes reais de uma equação do 2o grau

Obs.: Não se preocupar se as raízes forem iguais

(16)

Exercício: resposta Exercício: resposta

— 1. Ler(A, B, C)

— 2. Delta ç B x B – 4 x A x C

— 3. Se Delta ≥ 0 então

— 3.1 Mostrar( (-B - Raiz(Delta))/(2 x A) )

— 3.2 Mostrar( (-B + Raiz(Delta))/(2 x A) )

— 4. Caso contrário

— 4.1 Mostrar(‘Não há raízes reais’)

(17)

Algoritmo como função matemática Algoritmo como função matemática

Algoritmo Entradas

Saídas

Para chegar neste estágio, o algoritmo precisa assumir a forma de um programa de

computador

(18)

Programa de computador Programa de computador

— A diferença principal de um algoritmo computacional para um programa de computador é o uso de uma

Linguagem de programação

(19)

Um pouco de história…

Um pouco de história…

ENIAC

Naquela época, a “linguagem de programação” era

constituída de ligar/desligar chaves, conectar/desconectar

fios, etc. (eletromecânica)

(20)

Um pouco de história…

Um pouco de história…

Linguagem de máquina (binária) Agora ligar/desligar chaves

era puramente eletrônico…

mas usar 0 e 1’s apenas era muito trabalhoso e induzia a

erros frequentes…

(21)

Um pouco de história…

Um pouco de história…

Linguagem de montagem (assembly)

Surge necessidade do montador (assembler) Apesar da linguagem

ASSEMBLY ter sido um avanço, ainda era muito distante para o raciocínio

humano…

(22)

Um pouco de história…

Um pouco de história…

Linguagem de programação de alto nível

Linguagem de

alto nível Linguagem de

nível médio Linguagem de baixo nível

Compilador/int

erpretador O Já existente assembler

Inicialmente houve resistência (espaço e

velocidade). Mas a

produtividade compensou…

(23)

Linguagens de alto nível

Linguagens de alto nível

(24)

O Curso de Engenharia da Computação requer

O Curso de Engenharia da Computação requer

A linguagem de programação C

(25)

Linguagem de programção C Linguagem de programção C

— De propósito geral, inicialmente

desenvolvida por Dennis Ritchie, entre 1969 e 1973, na AT & T Bell Labs

— Padronizada (ANSI C) em 1989 e depois pela ISO entre 1995 e 1999

— C é a linguagem de programação mais usada mundialmente ainda hoje

— Usada desde o controle de hardware,

sistemas operacionais, até aviões e sistemas comerciais

(26)

Um Ligação com Hardware Um Ligação com Hardware

— Arduino [2005]

Plataforma de prototipagem eletrônica de hardware livre

Projetada com um microcontrolador Atmel AVR de placa única

Com suporte de entrada/saída embutido

E uma linguagem de programação padrão

– C (ou C++)

(27)

Projeto com Arduino (vídeos)

Projeto com Arduino (vídeos)

(28)

Apesar de simples…

Apesar de simples…

(29)

Dedicação ao curso Dedicação ao curso

— Aulas presenciais

— Praticar bastante (resolver problemas)

Estudar de 6 a 8h semanais

— Consultar monitores / professor

— Usar os laboratórios / praticar em casa

— Tentar realizar todas as tarefas

— Qualquer problema de desempenho, converse com o professor

Não desanime!

(30)

Forma de avaliação Forma de avaliação

— Teremos 2 exercícios escolares (provas) e mini-testes

— Listas de exercícios individuais (bônus)

— Projeto

— A nota será dada por:

Nota = 70%[((Prova1+bônus) + (Prova2+bônus))/2] + 30%[Projeto]

(31)

Introdução à programação Introdução à programação

Alexandre Mota acm@cin.ufpe.br

Referências

Documentos relacionados

ex_argparse.py: error: the following arguments are required: square. $ python3 ex_argparse.py -h usage: ex_argparse.py [-h] square

a) A execução de um código compilado é mais lenta do que se o mesmo código fosse interpretado. c) Na interpretação temos como resultado a geração de um outro arquivo escrito

Uma linguagem de programação define as palavras e símbolos que se pode usar para escrever um programa Uma linguagem de programação emprega um conjunto de regras (sintaxe) que

• inicio: Especifica a região das instruções (comandos, expressões ...) do algoritmo. • fimalgoritmo: Especifica o fim da definição

enquanto/faca repita/ate para/faca Estrutura base Condicional Condicional Contagem Avalição da. expressão lógica Início da estrutura Final da estrutura Início

condição – expressão cujo valor resultante é booleano estrutura condicional – estrutura de desvio do fluxo de controle que executa diferentes comandos de acordo com uma

Funcional Lógico Estruturado.

Isto acontece porque programas escritos em linguagens de programação são traduzidos para o código de máquina do computador em vez de ser diretamente executado.. Uma meta ambiciosa