Top Banner
Lógica de Programação Unimep/Pronatec 2° Semestre/2014 AULA 11 - Prof. André Bertoletti - [email protected]
49

Lógica de Programação - Unimep/Pronatec - Aula11

Jul 26, 2015

Download

Software

apbertoletti
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Lógica de Programação - Unimep/Pronatec - Aula11

Lógica de Programação

Unimep/Pronatec

2° Semestre/2014

AULA 11

- Prof. André Bertoletti -

[email protected]

Page 2: Lógica de Programação - Unimep/Pronatec - Aula11

Aula de hoje

• Modularização e reuso de programas

• Passagem de parâmetros

• Exercícios Portugol/C#

Page 3: Lógica de Programação - Unimep/Pronatec - Aula11

NÃO ESQUEÇA DA SUA Hora do Código

Acesse, identifique-se e faça os exercícios!

abre.ai/horadocodigo

Page 4: Lógica de Programação - Unimep/Pronatec - Aula11

Modularização

Uma técnica de desenvolvimento de software que consiste na

divisão da solução de um problema em “partes”

Page 5: Lógica de Programação - Unimep/Pronatec - Aula11

Dando “nome aos bois”

módulos = métodos = funções = procedimentos = subprogramas = subrotinas

= TRECHOS DO PROGRAMA

PRINCIPAL

Page 6: Lógica de Programação - Unimep/Pronatec - Aula11

Mas por que modularizar um

software?

Vantagens da modularização

Page 7: Lógica de Programação - Unimep/Pronatec - Aula11

No mundo real o software precisa ser mais robusto

Page 8: Lógica de Programação - Unimep/Pronatec - Aula11

Dividir para conquistar

Page 9: Lógica de Programação - Unimep/Pronatec - Aula11

O código fica mais legível e fácil de dar manutenção

Page 10: Lógica de Programação - Unimep/Pronatec - Aula11

Facilita o trabalho em equipe

Page 11: Lógica de Programação - Unimep/Pronatec - Aula11

Permite o reaproveitamento de código (bibliotecas)

Evite copiar e colar código! Ao invés disso, implemente o seu REUSO!

Page 12: Lógica de Programação - Unimep/Pronatec - Aula11

Na prática!

Veja como seria um programa modularizado

Page 13: Lógica de Programação - Unimep/Pronatec - Aula11

Programa não modularizado

Programa principal Inicio comando1; comando2; comando3; comando4; comando5; comando6; comando7; comando8; comando9; comando10; comando11; comando12; comando13; comando14; comando15; comando16; comando17; comando18; Fim

Page 14: Lógica de Programação - Unimep/Pronatec - Aula11

Programa modularizado

Programa principal() Inicio comando1; comando2; comando3; MétodoA(); comando5; comando6; comando7; comando8; comando9; MétodoB(); comando14; MétodoXYZ(); comando18; Fim

MétodoA() Inicio comando991; comando4; comando992; Fim

MétodoB() Inicio comando10; comando11; comando12; comando13; comando9991; Fim

MétodoXYZ() Inicio comando15; comando16; comando17; Fim

Page 15: Lógica de Programação - Unimep/Pronatec - Aula11

Vamos ver ao vivo!

Um exemplo em Portugol e C#

Page 16: Lógica de Programação - Unimep/Pronatec - Aula11

Retorno dos módulos

Um método pode retornar um valor ou então retornar vazio

Page 17: Lógica de Programação - Unimep/Pronatec - Aula11

Sintaxe para declarar um método

Portugol Studio C#

//método com retorno vazio funcao XYZ() { }

//método com retorno vazio void XYZ () { }

//método com retorno inteiro funcao inteiro XYZ () { retorna 0; }

//método com retorno inteiro int XYZ () { return 0; }

Page 18: Lógica de Programação - Unimep/Pronatec - Aula11

Passagem de parâmetros

Um método pode receber valores

de quem o chamou

Page 19: Lógica de Programação - Unimep/Pronatec - Aula11

Sintaxe para passagem de parâmetros

Portugol Studio C#

//recebendo valores por valor funcao XYZ(real P1, texto P2) { }

//recebendo valores por valor void XYZ (decimal P1, string P2) { }

//recebendo valores por referência funcao XYZ(real &P1, texto &P2) { }

//recebendo valores por referência void XYZ (ref decimal P1, ref string P2) { }

Page 20: Lógica de Programação - Unimep/Pronatec - Aula11

Vamos treinar um pouco?!

Page 21: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M1

Desenvolva um programa modular que leia dois números, faça a soma entre eles, e no final diga se o resultado desta soma resultou num número impar ou par.

Page 22: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M1 (em Portugol Studio, sem módulos)

Page 23: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M1 (em Portugol Studio, com módulos)

Page 24: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M1 (em C#, sem módulos)

Page 25: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M1 (em C#, com módulos)

Page 26: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M2

Escreva um método que receba um número inteiro por parâmetro e imprima o nome do mês correspondente ao número. Por exemplo, se passar o valor 2 deverá retornar “fevereiro”. O método também deverá mostrar uma mensagem de erro caso o número recebido não faça sentido. Por fim, o método principal deverá ler conter um algoritmo que leia um valor do usuário e chame o método criado.

Page 27: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M2 (em Portugol Studio, sem módulos)

Page 28: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M2 (em Portugol Studio, COM módulos)

Page 29: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M2 (em C#, sem módulos)

Page 30: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M2 (em C#, COM módulos)

Page 31: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3

Cria um programa modular que apresente um menu de opções para o usuário escolher qual sub-rotina gostaria de executar. Ao finalizar a execução da sub-rotina escolhida, possibilitar que o usuário escolha se deseja voltar ao menu principal e execute novamente.

Page 32: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, sem módulos)

(página 1/4)

Page 33: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, sem módulos)

(página 2/4)

Page 34: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, sem módulos)

(página 3/4)

Page 35: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, sem módulos)

(página 4/4)

Page 36: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, COM módulos)

Visão resumida de todos os módulos deste programa. Confira a visão detalhada nos próximos slides.

Page 37: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, COM módulos)

(página 1/4)

Page 38: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, COM módulos)

(página 2/4)

Page 39: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, COM módulos)

(página 3/4)

Page 40: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em Portugol Studio, COM módulos)

(página 4/4)

Page 41: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, sem módulos)

(página 1/3)

Page 42: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, sem módulos)

(página 2/3)

Page 43: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, sem módulos)

(página 3/3)

Page 44: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, COM módulos)

Visão resumida de todos os módulos deste programa. Confira a visão detalhada nos próximos slides.

Page 45: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, COM módulos)

(página 1/4)

Page 46: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, COM módulos)

(página 2/4)

Page 47: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, COM módulos)

(página 3/4)

Page 48: Lógica de Programação - Unimep/Pronatec - Aula11

Exercício_M3 (em C#, COM módulos)

(página 4/4)

Page 49: Lógica de Programação - Unimep/Pronatec - Aula11

Por hoje é só...

Agora é hora de estudar!

Acesse mais exercícios aqui: http://abre.ai/exercicos-modulos