pa-1-introducao [modo de compatibilidade]slago/pa-1.pdf · fluxograma exemplo 2. situação de um...

Post on 19-Mar-2020

1 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Programação Avançada(para o curso de Tecnologia em Mecânica de Precisão)

Prof. Dr. Silvio do Lago Pereira

Departamento de Tecnologia da Informação

Faculdade de Tecnologia de São Paulo

Contato

Sala: 623 – Bloco A

E-mail: slago@ime.usp.br

Página: www.ime.usp.br/~slago

Ementa, bibliografia e critérios de avaliação

Cronograma de aulas e provas

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 2

Cronograma de aulas e provas

Compilador Pelles C

Slides das aulas

Notas

Curso

Objetivo: Implementar algoritmos e estruturas de dados em C.

Tópicos:

Algoritmos e estruturas de controle

Funções e recursão

Tipos de dados agregados

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 3

Tipos de dados agregados

Ponteiros e alocação dinâmica

Estruturas de dados fundamentais

Avaliação

Provas

P1: 09/09

P2: 21/10

P3: 02/12

SUB: 09/12

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 4

Média = (P1 + P2 + P3) / 3

Aprovação requer média maior ou igual a 6,0.

Prova substitutiva

Apenas para quem não atingir a média

Substitui a menor nota entre P1, P2 e P3

Introdução

Algoritmo

Fluxograma

Programa

Compilador

Algoritmo

AlgoritmoAlgoritmo

é uma sequência finita e ordenada de passos executáveis que resolve um problema.é uma sequência finita e ordenada de passos executáveis que resolve um problema.

Exemplo 1. Torres de HanóiExemplo 1. Torres de Hanói

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 6

Problema:

Mover os discos da torre A para a torre C, usando a torre B

Restrições:

Mover um disco de cada vez

Não colocar um disco sobre outro menor

Transferir os discos de uma torre para outra, imediatamente

Problema:

Mover os discos da torre A para a torre C, usando a torre B

Restrições:

Mover um disco de cada vez

Não colocar um disco sobre outro menor

Transferir os discos de uma torre para outra, imediatamente

A B C

Algoritmo

A B C

Sequência de passosSequência de passos

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 7

Sequência de passosSequência de passos

Algoritmo

Sequência de passosSequência de passos

A B C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 8

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de C.

Algoritmo

Sequência de passosSequência de passos

A B C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 9

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.

Algoritmo

Sequência de passosSequência de passos

A B C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 10

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B. Mover o disco do topo de C para o topo de B.

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B. Mover o disco do topo de C para o topo de B.

Algoritmo

Sequência de passosSequência de passos

A B C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 11

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.

Algoritmo

Sequência de passosSequência de passos

A B C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 12

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.

Algoritmo

Sequência de passosSequência de passos

A B C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 13

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.Mover o disco do topo de B para o topo de C.

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.Mover o disco do topo de B para o topo de C.

Algoritmo

Sequência de passosSequência de passos

A B C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 14

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.Mover o disco do topo de B para o topo de C.Mover o disco do topo de A para o topo de C.

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.Mover o disco do topo de B para o topo de C.Mover o disco do topo de A para o topo de C.

Algoritmo

Sequência de passosSequência de passos

A B CAlgoritmo que resolve o problema das Torres de Hanói com três discos!

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 15

Sequência de passosSequência de passos

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.Mover o disco do topo de B para o topo de C.Mover o disco do topo de A para o topo de C.

Mover o disco do topo de A para o topo de C.Mover o disco do topo de A para o topo de B.Mover o disco do topo de C para o topo de B.Mover o disco do topo de A para o topo de C.Mover o disco do topo de B para o topo de A.Mover o disco do topo de B para o topo de C.Mover o disco do topo de A para o topo de C.

Fluxograma

FluxogramaFluxograma

Descrição precisa e detalhada de um algoritmo, que usa textos e figuras.Descrição precisa e detalhada de um algoritmo, que usa textos e figuras.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 16

Fluxograma

Exemplo 2. Situação de um alunoExemplo 2. Situação de um aluno

Dadas as duas notas de um aluno, informe sua média e situação final(aprovado ou reprovado)Dadas as duas notas de um aluno, informe sua média e situação final(aprovado ou reprovado)

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 17

Sequência de passosSequência de passos

Exiba uma mensagem ao usuário, solicitando a digitação das notas

Leia os dados digitados e os armazene nas variáveis a e b

Calcule a média dos valores em a e b, guardando o resultado em c

Exiba uma mensagem indicando que a média é o valor em c

Se o valor da variável em c for maior ou igual a 6.0, exiba a

mensagem "Aprovado"; senão, exiba a mensagem "Reprovado"

Exiba uma mensagem ao usuário, solicitando a digitação das notas

Leia os dados digitados e os armazene nas variáveis a e b

Calcule a média dos valores em a e b, guardando o resultado em c

Exiba uma mensagem indicando que a média é o valor em c

Se o valor da variável em c for maior ou igual a 6.0, exiba a

mensagem "Aprovado"; senão, exiba a mensagem "Reprovado"

Fluxograma

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 18

Fluxograma

Exibe dados no vídeo

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 19

Fluxograma

Constante, variável

ou expressão

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 20

Fluxograma

Lê valores do teclado e

os atribui às variáveis

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 21

Fluxograma

Variável

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 22

Fluxograma

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 23

Processamento

Fluxograma

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 24

Atribuição

Fluxograma

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 25

Conector

Fluxograma

Decisão

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 26

Fluxograma

Condição

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 27

Fluxograma

Embora o fluxograma descreva detalhadamente a lógica do

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 28

Embora o fluxograma descreva detalhadamente a lógica do

programa, ele não pode ser executado pelo computador!

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 29

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

int main(void) {

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 30

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

printf("Notas? ");

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 31

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 32

scanf("%f %f",&a,&b);

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 33

c = (a+b)/2;

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

printf("Media = %.1f\n", c);

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 34

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

if( c >=6 )

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 35

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 36

printf("Aprovado\n");

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 37

printf("Reprovado\n");

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 38

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 39

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 40

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 41

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 42

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 43

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 44

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 45

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 46

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 47

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Programa

ProgramaPrograma

Algoritmo descrito em uma linguagem de programação.Algoritmo descrito em uma linguagem de programação.

// informa a situação de um aluno

#include <stdio.h>

int main(void) {

float a, b, c;

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 48

float a, b, c;

printf("Notas? ");

scanf("%f %f", &a, &b);

c = (a+b)/2;

printf("Media = %.1f\n", c);

if( c >= 6.0 ) printf("Aprovado\n");

else printf("Reprovado\n");

return 0;

}

Compilador

CompiladorCompilador

Programa que interpreta comandos escritos numa linguagem de programação

e os converte para uma forma que o computador é capaz de executar.

Programa que interpreta comandos escritos numa linguagem de programação

e os converte para uma forma que o computador é capaz de executar.

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 49

Compilador

Exercício 1. Criação de programaExercício 1. Criação de programa

(a) Abra o compilador Pelles C IDE

(b) Entre em File → New → Project

(c) Crie um projeto novo denominado situação (Win32 Console program EXE)

(d) Entre em File → New → Source Code

(e) Digite o programa em linguagem C

(a) Abra o compilador Pelles C IDE

(b) Entre em File → New → Project

(c) Crie um projeto novo denominado situação (Win32 Console program EXE)

(d) Entre em File → New → Source Code

(e) Digite o programa em linguagem C

Prof. Dr. Silvio do Lago Pereira – DTI / FATEC-SP 50

(f) Salve o programa (clicando no ícone )

(g) Compile, execute e teste o programa (clicando no ícone )

(f) Salve o programa (clicando no ícone )

(g) Compile, execute e teste o programa (clicando no ícone )

Exercício 2. Índice de Massa Corpórea (IMC)Exercício 2. Índice de Massa Corpórea (IMC)

O IMC de uma pessoa é igual ao seu peso (Kg) dividido pelo quadrado de sua

altura (m). Uma pessoa é considerada obesa quando seu IMC é superior a 30.

Dados o peso e a altura de uma pessoa, informe seu IMC e indique se ela está

ou não obesa.

O IMC de uma pessoa é igual ao seu peso (Kg) dividido pelo quadrado de sua

altura (m). Uma pessoa é considerada obesa quando seu IMC é superior a 30.

Dados o peso e a altura de uma pessoa, informe seu IMC e indique se ela está

ou não obesa.

Fim

top related