Skip to content

Commit

Permalink
update listas, add figs
Browse files Browse the repository at this point in the history
  • Loading branch information
christinaflach committed Feb 1, 2024
1 parent b37377f commit c5b8763
Show file tree
Hide file tree
Showing 21 changed files with 466 additions and 198 deletions.
77 changes: 59 additions & 18 deletions ilp/00a-intro-programacao.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,44 +25,56 @@ Um **algoritmo** é uma sequência de passos bem definidos para resolver um prob

<!-- Na computação, algoritmos transformam valores de entrada em valores de saída (como funções). -->

---
# Troca de Pneu Furado

```
Pare em um local seguro.
Pegue o triângulo e sinalize atrás do veículo.
Localize o estepe, macaco e chave de roda.
Afrouxe os parafusos do pneu furado com a chave de roda.
Levante o veículo com o macaco.
Solte os parafusos.
Troque o pneu furado pelo estepe.
Aperte os parafusos com a chave de roda.
Desça o carro.
Guarde o triângulo, estepe, macaco e chave de roda.
```
---

# Programa

Um **programa** é uma sequência de instruções que serão executadas pelo computador. Um programa, portanto, pode descrever algoritmos.
Um **programa** é uma sequência de instruções que serão executadas pelo computador.
Programas descrevem e implementam algoritmos.

O computador consegue executar **código de máquina**, isto é, programas escritos em **linguagem de máquina**. <!-- Cada máquina entende uma linguagem diferente -->

Pessoas geralmente trabalham com **código-fonte**, isto é, programas escritos em uma **linguagem de programação** (mais fácil de entender).
Pessoas geralmente trabalham com **código-fonte**, isto é, programas escritos em uma **linguagem de programação de alto nível** (mais fácil de entender).

> Exemplos de linguagens de programação: C++, Python, Java, JavaScript
---

# Compilador e interpretador

Um **compilador** ou **intepretador** é um programa que transforma código-fonte em código de máquina.
# Instruções

- O compilador faz isso de uma vez só, gravando o código de máquina em um arquivo executável
- O interpretador transforma o código enquanto o executa.
As linguagens de programação possuem instruções para:

Um programa que é interpretado também é chamado de **script**.
- **entrada de dados** - ler dados do teclado, de um arquivo, da rede, do relógio, da câmera e outros dispositivos
- **saída de dados** - escrever na tela ou em um arquivo, enviar dados via rede, emitir um som etc.
- **processamento de dados** - transformar dados, por exemplo, com operações aritméticas e estruturas para controlar o fluxo de execução:
- **sequência**
- **seleção**
- **repetição**

---

# Instruções
# Estruturas de Controle

As linguagens de programação possuem os seguintes tipos de instruções:

- **entrada de dados** - lê dados do teclado, de um arquivo, da rede, do relógio, da câmera e outros dispositivos
- **saída de dados** - escrever na tela ou em um arquivo, enviar dados via rede, emitir um som etc.
- **processamento de dados** - basicamente operações matemáticas
- **condicionais** - permite executar ou não outras instruções a depender de uma condição
- **repetição** - permite re-executar instruções
<img src="./figs/fig-control-flow-basic-structures.png" alt="image" width="100%">

---

# Exemplo de programa
# Exemplo de algoritmo

Algoritmo para calcular a idade de uma pessoa, escrito em português:

Expand All @@ -77,7 +89,7 @@ Algoritmo para calcular a idade de uma pessoa, escrito em português:

# Exemplo de programa

Programa escrito na linguagem de programação Python:
Código-fonte do programa na linguagem de programação Python:

```python
# Entrada
Expand All @@ -93,5 +105,34 @@ if not ja_fez_aniversario:
# Saída
print(idade)
```
---

# Tradução e execução de programas

O computador consegue executar **código de máquina**, isto é, programas escritos em **linguagem de máquina**. <!-- Cada máquina entende uma linguagem diferente -->

- É preciso traduzir um programa escrito em *linguagem de programação* para um programa em *linguagem de máquina*.

Um **compilador** é um programa que traduz o código-fonte de um programa escrito
em uma linguagem de programação para código de máquina.

- O compilador traduz todo o programa e grava o código de máquina em um arquivo executável.

Um **intepretador** também é um programa que traduz o código-fonte em código de máquina, mas executa as instruções à medida em que faz a tradução.

- Um programa que é interpretado também é chamado de **script**.

---

# Compilador

<img src="./figs/fig-compilador.png" alt="image" width="100%">

---

# Interpretador

<img src="./figs/fig-interpretador.png" alt="image" width="100%">


{:/}
23 changes: 16 additions & 7 deletions ilp/02-if-else.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,22 +21,30 @@ Em Python, usamos as palavras-chave `if` (se), `else` (caso contrário) e `elif`

---

# if: seleção simples
# Seleção simples

Do inglês, *se* (conjunção subordinativa condicional)

Sintaxe:
<img src="./figs/fig-if-flow.png" alt="image" width="100%">

- Significado: se a `condicao` for verdadeira (`True`), o `bloco de código` (sequência de instruções) é executado.

---

# if: seleção simples em Python

Do inglês, `if` significa **se**.

- Sintaxe:

```c++
if condicao:
bloco de código
```

- Significado: o `bloco de código` (sequência de instruções) é executado somente se a `condicao` for verdadeira

- Depois da condição deve vir um sinal de dois-pontos (`:`)
- A sequência de instruções deve estar indentada em relação à palavra `if` (isto é, deve estar mais à direita)

- Significado: o `bloco de código` (sequência de instruções) é executado somente se a `condicao` for verdadeira
---

# if
Expand Down Expand Up @@ -126,7 +134,7 @@ print(total)
---


# if: Usar comentários (exemplo anterior)
# if: Exemplo anterior comentado

```python
# Entrada
Expand Down Expand Up @@ -183,7 +191,8 @@ if idade < 18:
print("Você não é adulto.")
```

Note que as condições são opostas. Nesse caso podemos usar a estrutura `if`/`else`, que veremos a seguir.
Note que as condições são complementares.
Nesse caso, pode-se usar a estrutura `if-else`.

---

Expand Down
164 changes: 0 additions & 164 deletions ilp/03-repeticao.md

This file was deleted.

Loading

0 comments on commit c5b8763

Please sign in to comment.