Aula 02 - Introdução Computadores, Resolução de problemas, algoritmos

8 Pages • 2,557 Words • PDF • 1 MB
Uploaded at 2021-09-24 08:17

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


• 

Introdução à Programação para Engenharias Profa. Dra. Kalinka Regina Lucas Jaquie Castelo Branco [email protected]

• 

Mecanismos e Máquinas: Do Ábaco a Máquina de Calcular Máquinas Automáticas Computadores: Circuitos Eletrônicos => Dados e Programas =>

• 

HARDWARE SOFTWARE

(HW) (SW)

[Memória!]

Conceitos sobre ALGORITMO e PROGRAMA DADOS => INFORMAÇÃO => CONHECIMENTO PROGRAMAS: Escritos em uma Linguagem de Programação Ordens sequenciais de manipulação de dados e informações

Slides baseados nos slides de diversos professores, entre ele Leandro Fernandes e Fernando Santos Osório.

2

Introdução Março 2011

Março 2011

Introdução • 

Março 2011

Introdução

Computadores: Circuitos Eletrônicos => Dados e Programas =>

Mecanismos e Máquinas: Do Ábaco a Máquina de Calcular Máquinas Automáticas • 

HARDWARE SOFTWARE

(HW) (SW)

[Memória!]

Os programas são sequências de instruções armazenadas na memória do computador que indicam as ações que o “hardware” deve executar, como por exemplo: •  Ler um dado do teclado, armazenar na memória, somar dois dados, exibir na tela, gravar no disco, etc.

DADOS => INFORMAÇÃO => CONHECIMENTO

Mecanismos Automáticos: Caixas Musicais – Executam programas que estão contidos nos cilindros metálicos, o que faz com que sejam produzidas as músicas. Programa ~ É fixo na “memória” do cilindro e contém instruções que são as notas musicas a serem tocadas Programa de Computador: Possui dados armazenados na memória indicando instruções (sequência de ações)

DADOS: São valores BRUTOS armazenados. Exemplo: 8 INFORMAÇÃO: Quando atribuímos um sentido ao dado Exemplo: Nota da Prova de Fulano = 8 CONHECIMENTO: Regras, Políticas, Manipulação da Informação Exemplo: Notas devem ser entre 0 e 10

3

4

Aluno com nota abaixo de 5 está reprovado

Agenda: 1.  Algoritmo

Algoritmos • 

Seqüência de Ações a serem executadas

• 

Computador não tem senso próprio – 

2.  Sequência de Instruções

– 

3.  Computador: Programa e Dados (Memória) 4.  Linguagem de Programação

• 

Deve receber instruções explícitas (algoritmos) Seqüência de instruções como na caixinha de música...

Um algoritmo correto deve possuir 4 qualidades:

5.  Projeto, Codificação, Compilação, Execução e Teste

1) 

6.  Linguagem "C"

2)  3)  5

Março 2011

Março 2015

Aula 02 – Algoritmos e Programação em "C"

4) 

Cada passo do algoritmo deve ser uma instrução que possa ser realizada (codificada no computador) A ordem dos passos deve ser precisamente determinada O algoritmo deve ter fim (terminar) O algoritmo deve ter um fim (uma utilidade/um objetivo) 6

1

Algoritmo para trocar pneu de um carro

Algoritmos ! 

Algoritmo para trocar pneu de um carro

Início

Início

Trocar Pneu

Março 2011

! 

Março 2011

Algoritmos

Trocar pneu? É suficientemente claro para você?

Trocar Pneu

Fim

Fim 7

Algoritmo para trocar pneu de um carro

Algoritmos ! 

Algoritmo para trocar pneu de um carro

Início

Início

Levantar o carro

Levantar o carro

Março 2011

! 

Março 2011

Algoritmos

8

Estrutura seqüencial

Desparafusar a roda

Desparafusar a roda

Remover a roda

Remover a roda

Colocar o estepe

Colocar o estepe

Parafusar a roda

Parafusar a roda

Abaixar o carro

Abaixar o carro

pode ser detalhado

pode ser detalhado

9

10

Fim

Fim

Algoritmo para trocar pneu de um carro Início

! 

Algoritmo para trocar pneu de um carro

Levantar o carro Desapertar o parafuso 1 Desapertar o parafuso 2 Desapertar o parafuso 3 Desapertar o parafuso 4

Um passo pode ser refinado em passos menores

Desparafusar a roda

Remover a roda

Remover a roda

Colocar o estepe

Colocar o estepe

Parafusar a roda

Apertar o parafuso 1 Apertar o parafuso 2 Apertar o parafuso 3 Apertar o parafuso 4

Um passo pode ser refinado em passos menores

Parafusar a roda

Abaixar o carro

Desapertar o parafuso 1 Desapertar o parafuso 2 Desapertar o parafuso 3 Desapertar o parafuso 4

Apertar o parafuso 1 Apertar o parafuso 2 Apertar o parafuso 3 Apertar o parafuso 4

Um passo pode ser refinado em passos menores

Um passo pode ser refinado em passos menores

Abaixar o carro 11

Fim

Estrutura de SubRotina

Início

Levantar o carro Desparafusar a roda

Algoritmos

Março 2011

! 

Março 2011

Algoritmos

12

Fim

2

Algoritmos

! 

Algoritmo para trocar pneu de um carro

Março 2011

Algoritmo para trocar pneu de um carro

Março 2011

! 

Algoritmos

Início

Início

E se... Desparafusar a roda Remover a roda Colocar o estepe

Estepe vazio?

sim

Levantar o carro

não Levantar o carro

Se não for possível seguir estes passos? Se algo não sair como previsto? Se eu tiver mais de uma alternativa? Se ...

Desparafusar a roda

Chamar o borracheiro

Desapertar o parafuso 1 Desapertar o parafuso 2 Desapertar o parafuso 3 Desapertar o parafuso 4

Remover a roda Colocar o estepe

Parafusar a roda

Parafusar a roda

Abaixar o carro

Apertar o parafuso 1 Apertar o parafuso 2 Apertar o parafuso 3 Apertar o parafuso 4

Abaixar o carro 13

14

Fim

Fim

Algoritmos

Algoritmo para trocar pneu de um carro Início sim

Estepe vazio?

! 

Estrutura de Desvio Condicional

Início

não

Levantar o carro

Levantar o carro Desparafusar a roda

Chamar o borracheiro

Algoritmo para trocar pneu de um carro

Desparafusar a roda

Desapertar o parafuso 1 Desapertar o parafuso 2 Desapertar o parafuso 3 Desapertar o parafuso 4

E porque não... Pit-Stop Trocar os 4 pneus do carro?

Remover a roda

Remover a roda

Colocar o estepe

Colocar o estepe

Parafusar a roda

Março 2011

! 

Março 2011

Algoritmos

Parafusar a roda

Apertar o parafuso 1 Apertar o parafuso 2 Apertar o parafuso 3 Apertar o parafuso 4

Abaixar o carro

Abaixar o carro 15

16

Fim

Fim

Algoritmos

Algoritmo para trocar pneu de um carro

Início

Trocar Pneu

! 

Algoritmo para trocar pneu de um carro Início

E porque não... Pit-Stop Trocar os 4 pneus do carro?

Levantar o carro Desparafusar a roda

Início

Remover a roda

E porque não... Pit-Stop Trocar os 4 pneus do carro? Início

Estrutura de repetição Fim

Trocou os 4 pneus?

Estrutura de repetição Colocar o estepe

sim

Parafusar a roda

não

Abaixar o carro

Trocar Pneu

Março 2011

! 

Março 2011

Algoritmos

Trocou os 4 pneus?

não Trocar Pneu

17

sim

“Laço” 18

Fim Fim

Fim

3

Estruturas dos Algoritmos

Março 2011

Março 2011

Estruturas dos Algoritmos

"  Em

uma estrutura de sub-rotina, a execução é desviada para uma sequência de comandos que executam uma tarefa, voltando ao fluxo normal.

"  Em

uma estrutura sequencial, os passos são tomados em uma sequência pré-definida.

Estrutura Sequencial

Estrutura de Sub-Ro6na

X: 1. 2. 3. 4. ... N.

X

19

"  Uma

estrutura de repetição permite que uma sequência de comandos seja executada repetidamente até que uma determinada condição de interrupção seja satisfeita.

"  Uma

estrutura condicional permite a escolha do grupo de ações a ser executado quando determinada condição é ou não satisfeita.

sim

?

Estruturas dos Algoritmos

Março 2011

Março 2011

Estruturas dos Algoritmos

20

não

não

continuar?

Estrutura Condicional

Estrutura de Repe6ção

sim

21

22

Algoritmos => Programas

Algoritmos => Programas Março 2011

Março 2011

Como passar de um Algoritmo

Programa de Computador: Memória

Para um Programa de Computador 1

2

3

4

5

6

7

...

Computador: - 

Uso de dados armazenados na memória (variáveis)

- 

Instruções bem definidas: os comandos da linguagem

Ciclo: - 

Entrada de Dados: Ler os dados

- 

Processamento: manipular os dados

- 

Saída de Dados: Escrever os resultados

23

A memória do computador armazena dados (bytes) Cada dado tem a sua posição na memória (endereço)

24

4

Algoritmos => Programas

Algoritmos => Programas

1

2

Pregos Porcas

3

4

Parafusos Açúcar

5

6

7

Sal

Óleo

Leite

Março 2011

Março 2011

Programa de Computador: Memória

Programa de Computador: Memória ...

1

2

Pregos Porcas 30

25

A memória do computador armazena dados (bytes) Cada endereço pode armazenar diferentes tipos de dados (variáveis)

Algoritmos => Programas

3

45

45

5

6

7

Sal

Óleo

Leite

300g

1L

250ml

4

Parafusos Açúcar 2kg

...

A memória do computador armazena dados (bytes) Cada variável armazena uma informação (valor da variável)

26

Algoritmos => Programas

1

2

Pregos Porcas 30

45

3

4

Parafusos Açúcar 45

2kg

5

6

7

Sal

Óleo

Leite

300g

1L

250ml

Março 2011

Março 2011

Programa de Computador: Memória

Programa de Computador: Comandos Comandos são ordens para que o computador manipule os

...

dados de sua memória... Exemplos de Comandos:

Quantidade_de _Pregos_Disponiveis

- 

Realizar operações com os dados: mover, somar, subtrair, ...

- 

Ler novos dados pelo teclado: entrada de dados

- 

Escrever resultados na tela: saída de dados

27 Variáveis vão receber NOMES... Nomes que representam uma informação (valor armazenado) de um determinado tipo em uma determinada posição da memória

Linguagem "C"

Programa de Computador: Comandos Comandos são ordens para que o computador manipule os dados de sua memória... Exemplos de Comandos: - 

Realizar operações com os dados: mover, somar, subtrair, ...

- 

Ler novos dados pelo teclado: entrada de dados

- 

Escrever resultados na tela: saída de dados

CPU / UCP Unidade Central de Processamento ULA, Registradores de Máquina, Relógio (Clock), Decodific. de Instruções, Unidade de Controle, Cache de Instruções

Março 2011

Março 2011

Algoritmos => Programas

28

Dispositivos de E/S Periféricos: •  Vídeo => StdOut •  Teclado => StdIn •  Impressora •  Disco •  CD-ROM ...

Memória Endereço e Conteúdo

ESCOLHA DA LINGUAGEM PROGRAMAÇÃO: http://pt.wikipedia.org/wiki/Linguagem_de_programação 29 http://pt.wikipedia.org/wiki/Anexo:Lista_de_linguagens_de_programação

30

5

Linguagem "C"

Linguagem "C"

ULA, Registradores de Máquina, Relógio (Clock), Decodific. de Instruções, Unidade de Controle, Cache de Instruções

ULA, Registradores de Máquina, Relógio (Clock), Decodific. de Instruções, Unidade de Controle, Cache de Instruções

CPU:

Códigos de Máquina (Assembly - Mnemônicos) Homem: Linguagens de Alto Nível (Próximas da Linguagem Natural Humana)

Memória Endereço e Conteúdo

Linguagem "C"

Relógio (Clock), Decodific. de Instruções,

•  Compilador/Interpretador: Java (JVM)

CPU:

Códigos de Máquina (Assembly - Mnemônicos) Homem: Linguagens de Alto Nível (Próximas da Linguagem Natural Humana)

Memória •  Aplicativos: Word,Endereço Excel, eBrowsers, Conteúdo ... Programação: •  Imperativa •  Determinística •  Estruturada •  OOP (Objetos)

Alto Nível Pascal “C” / C++ Java Cobol ...

Baixo Nível Assembly 8080 80x86 680xx ...

Endereço e Conteúdo Alto Nível Pascal “C” / C++ Java Cobol ...

Baixo Nível Assembly 8080 80x86 680xx ...

33

32

Linguagem "C" - Criada por B. Kernighan e D. Ritchie - Linguagem mais utilizada em ambientes acadêmicos, de pesquisa e de desenvolvimento de ferramentas básicas - Adotaremos a linguagem ”C” inicialmente como ferramenta para desenvolvimento de programas Motivos da escolha desta linguagem: - Portabilidade (GCC for Windows / GCC for Linux) - Bem estruturada, gera código otimizado - Flexibilidade, potencialidade (“ling. aberta”), C++ - Uso de Software Livre e das bibliotecas disponíveis - Ambiente de desenvolvimento: IDE Integrated Development Environment: * DEV-C++ - Editor, Compilador, Depurador (debug) * Linux: gcc, dev-c++, vi/xedit/emacs/pico, xxgdb/ddd, ...

34

Linguagem "C" - Compilador GNU GCC

Linguagem "C"

Março 2011

Março 2011

Linguagem de Programação Adotada: C/C++ Ferramentas de Desenvolvimento em "C" GNU GCC - Windows / Linux

Códigos de Máquina (Assembly - Mnemônicos) Homem: Linguagens de Alto Nível (Próximas da Linguagem Natural Humana)

Março 2011

Março 2011

E/S Periféricos: •  Vídeo => StdOut •  Teclado => StdIn •  Impressora •  Disco •  CD-ROM ...

de Controle, Cache de Instruções • Unidade Interpretadores - PERL, ...

CPU:

Memória Programação: •  Imperativa •  Determinística •  Estruturada •  OOP (Objetos)

31

Ferramentas Software: CPUde / UCP Unidade Central de •  Sistema Operacional Processamento • ULA, Compiladores GCC, ... Registradores de -Máquina,

Dispositivos de E/S Periféricos: •  Vídeo => StdOut •  Teclado => StdIn •  Impressora •  Disco •  CD-ROM ...

CPU / UCP Unidade Central de Processamento

Março 2011

Março 2011

Dispositivos de E/S Periféricos: •  Vídeo => StdOut •  Teclado => StdIn •  Impressora •  Disco •  CD-ROM ...

CPU / UCP Unidade Central de Processamento

GNU GCC / Command Line DOS Inicializar as variáveis

SSC0304

Edição

de ambiente: PATH Usual: C:\Dev-Cpp\Bin

> CodeBlocks ou Dev-C++ [MingW] Web: http://www.bloodshed.net/devcpp.html Web: http://www.codeblocks.org/ > Outros ambientes do GCC:

Compilação e

Portable Apps (Compilador de “pen-drive”)

Execução

http://www.thefreecountry.com/compilers/cpp.shtm > Linux GNU GCC + { gdb, xxgdb, DDD / Kdeveloper } * Outras Ferramentas para Desenvolvimento de Programas em “C” > Microsoft Visual Studio C/C++ / Visual Studio Express Edition

35

36

6

Estrutura de um Programa em "C"

Linguagem "C" - Compilador GNU GCC Compilação: Entrada = Arquivo Texto (.c) // Saída = Arquivo Executável (.exe) GCC .c ==> Gera um programa executável a.out ou a.exe GCC prog.c -o prog.exe ==> Especifica o nome do executável GCC prog.c -o prog.exe -lm ==> Indica para incluir (link) biblioteca matemática GCC -g prog.c -o prog.exe ==> Indica para gerar código adicional para "debug" GCC -g -Wall prog.c -o pro.exe -lm ==> Compilação "cuidadosa" (inclui principais opções) GCC --version ==> Versão do compilador - IMPORTANTE! GCC --help ==> Exibe a tela de ajuda do comando de compilação (opções)

Março 2011

Março 2011

Linguagem “C” : Comandos de compilação de programa em “C”

Linguagem “C” : Exemplo de programa em “C” DOS> type hello.c

LINUX> cat hello1.c

#include

#include

main ( ) { printf (“\n”); printf (“Hello World! \n”); printf (“\n”); }

main ( ) { printf (“\n”); printf (“Hello World! \n”); printf (“\n”); }

DOS> gcc hello.c -o hello.exe -lm

LINUX> gcc hello1.c -o hello1 -lm

37

38

Exatamente Iguais!

Estrutura de um Programa em "C"

Estrutura de um Programa em "C"

char nome [30];

Linguagem “C” : Exemplo de um típico programa em “C” DOS> type hello2.c

DOS> type hello2.c #include #define ANO_ATUAL 2011

#include #define ANO_ATUAL 2011

/* Inclusão de Bibliotecas Externas - Header */ /* Valor constante */ /* Isto é um comentário */ /* Declaração de Variáveis Globais */

char nome [30];

/* Inclusão de Bibliotecas Externas - Header */ /* Valor constante */ /* Isto é um comentário */ /* Declaração de Variáveis Globais */

main ( ) /* Bloco Principal - Main: começa a executar aqui */ { /* Início do Bloco de nome "main" */ int ano=ANO_ATUAL; /* Declaração de Variáveis Locais ao Bloco */

int main (void) /* Bloco Principal - Main: começa a executar aqui */ { /* Início do Bloco de nome "main" */ int ano=ANO_ATUAL; /* Declaração de Variáveis Locais ao Bloco */

printf (“Nome? “); /* Comandos */ scanf (“%s”,nome); printf (“\n”); printf (“Hello %s, welcome to %d!\n”,nome,ano); printf (“\n”); } /* Fim do Bloco de nome "main" */

printf (“Nome? “); /* Comandos */ scanf (“%s”,nome); printf (“\n”); printf (“Hello %s, welcome to %d!\n”,nome,ano); printf (“\n”); return (0); } /* Fim do Bloco de nome "main" */

39

Algoritmos => Programas

40

Algoritmos => Programas Março 2011

Março 2011

Programa de Computador: Comandos

Programa de Computador: Comandos /* Comentário: Este é um Exemplo de Programa em “C” */

Comandos são ordens para que o computador manipule os dados de sua memória...

#include #include

Exemplo de Programa: LINGUAGEM “C”

char Nome[30];

#include

int main(int argc, char *argv[])

#include

{ printf("Qual o seu nome? ");

int main(int argc, char *argv[])

scanf ("%s",Nome);

{

printf("Hello %s\n",Nome);

printf("Hello World\n"); system("PAUSE"); return 0; }

Março 2011

Março 2011

Linguagem “C” : Exemplo de um típico programa em “C”

system("PAUSE");

41

return 0;

42

}

7

Março 2011

Exercícios 1) Faça um algoritmo que descreva a preparação de um bolo de chocolate 2) Faça um algoritmo que descreva a preparação de uma dúzia de copos de suco de laranja 3) Faça um algoritmo que descreva “uma cantada” (prever as diferentes situações que podem ocorrer) 4) Resolva os problemas abaixo (ver site: http://www.plastelina.net/ ) 4.1 Lobo, Ovelha e Alface 4.2 Missionários e Canibais

43

8
Aula 02 - Introdução Computadores, Resolução de problemas, algoritmos

Related documents

3 Pages • 888 Words • PDF • 69.3 KB

21 Pages • 1,143 Words • PDF • 553.1 KB

49 Pages • 2,835 Words • PDF • 1 MB

6 Pages • 722 Words • PDF • 1 MB

14 Pages • 3,836 Words • PDF • 69.5 KB

21 Pages • 3,735 Words • PDF • 1.9 MB

15 Pages • 1,523 Words • PDF • 1.4 MB

6 Pages • 1,159 Words • PDF • 471.2 KB

30 Pages • 896 Words • PDF • 1.1 MB

12 Pages • 2,251 Words • PDF • 307.2 KB

30 Pages • 6,293 Words • PDF • 189.9 KB