Aula 22 Modularização 22/10/08.

Slides:



Advertisements
Apresentações semelhantes
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ Professor: Dilvan Moreira.
Advertisements

Lógica de Programação Aula 25 Prof. Auler Gomes. Introdução - subrotina Muitos problemas grandes ou nem tão grandes, mas de solução mais complexa podem.
1 Aula 06 – Funções Prof. Filipe Mutz Colocar mais exemplos de funções simples no começo.
Linguagens de Programação Conceitos e Técnicas Amarrações Prof. Isabel Cafezeiro
1 Programação em C Aula 7. 2 Um lojista atribui o preço de venda dos itens de sua loja com um número racional (uma fração de inteiros). Este comerciante.
Algoritmos e Programação utilizando Visualg
Estruturas de Repetição
Aula 3 - Estruturas de Repetição
Estruturas de Dados Aula 2: Estruturas Estáticas
CES-11 ALGORITMOS E ESTRUTURAS DE DADOS Aulas Práticas – 2017
Introdução à Computação para Engenharia MAC2166
Algoritmos e Estruturas de Dados I
Vetores e Matrizes em C/C++
Algoritmo e Estrutura de Dados I
Lógica de Programação I
Algoritmos e Estruturas de Dados I Prof. Dsc. Alex F. V. Machado
Introdução à Programação Linguagem C
INF1007: Programação 2 2 – Alocação Dinâmica
1) Complete as seguintes frases:
Aula02 – Técnicas de Programação II
Estruturas de Decisão.
Estrutura de Dados Revisão
Introdução à Computação para Engenharia MAC2166
Estruturas de Repetição
Algoritmos e Estruturas de Dados I
FUNDAMENTO DE PROGRAMAÇÃO LINGUAGEM C - CONCEITOS FUNDAMENTAIS
Algoritmos e Estruturas de Dados I
Linguagem C Para programadores Python
Prof. Wellington Franco Sub-Rotinas:Funções e Procedimentos
Algoritmos e Estruturas de Dados I
Prof. Wellington Franco
FUNDAMENTO DE PROGRAMAÇÃO
Representação de um Algoritmo na Forma de Pseudocódigo
Estrutura de dados Pilhas e filas
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTOS DE PROGRAMAÇÃO
FUNDAMENTO DE PROGRAMAÇÃO PROF. BRUNO DE CASTRO H. SILVA
FUNDAMENTO DE PROGRAMAÇÃO
FUNDAMENTO DE PROGRAMAÇÃO
CONCEITO DE VARIÁVEIS ESTÁTICAS
Introdução à Programação BCC 201 Aula
Access 2010 Microsoft. Access 2010  O Microsoft Access é um Sistema de Gestão de Base de Sados (SGBD) relacional em ambiente gráfico (Windows), que possibilita.
Programação de Computadores I – Arquivos
Algoritmos e Técnicas CEFET/RN.
Lógica de Programação e Algoritmos - LPA Professora: Ecila Alves de Oliveira UNIP – 2.Sem/2015 Décima Primeira Aula - Função.
Lógica de Programação e Algoritmos - LPA Professora: Ecila Alves de Oliveira UNIP – 2.Sem/2015 Décima Primeira Aula - Função.
Algoritmos e Estruturas de Dados I
Estruturas de Repetição
Subalgoritmo É um trecho de algoritmo construído para resolver parte de um problema maior. Também chamado de módulo. A técnica que consiste dividir o.
PROGRAMAÇÃO I UNIDADE 3.
Algoritmos e Programação I

Algoritmos Prof.: Carlos Alberto _1:
Linguagem de Programação II
Programação de Computadores I – Arquivos
DHD – Desenvolvimento em Hardware
Professora Roberta Bonamichi Guidi Garcia
DHD – Desenvolvimento em Hardware
Linguagem de Programação I
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Computação Eletrônica Vetores e Matrizes
Algoritmos e Estruturas de Dados I – Ponteiros
Referências.
Estruturas de Dados em C
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
Introdução a lógica de programação Tipos de algoritmos.
Representação de Algoritmos
Fundamentos de Programação 1
Python: Funções Claudio Esperança.
Aula 4 Professores: Conteúdo: Dante Corbucci Filho
Transcrição da apresentação:

Aula 22 Modularização 22/10/08

Emmanuel Kayembe Ilunga Introdução Um módulo nada mais é do que um grupo de comandos que constitui um trecho de algoritmo com uma função bem definida e o mais independente possível das demais partes do algoritmo. Cada módulo, durante a execução do algoritmo, realiza uma tarefa específica da solução do problema e, para tal, pode contar com o auxílio de outros módulos do algoritmo. Desta forma, a execução de um algoritmo contendo vários módulos pode ser vista como um processo cooperativo. 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Vantagens Torna o algoritmo mais fácil de escrever. O desenvolvedor pode focalizar pequenas partes de um problema complicado e escrever a solução para estas partes uma de cada vez, ao invés de tentar resolver o problema como um todo; Torna o algoritmo mais fácil de ler. O fato do algoritmo estar dividido em módulos permite que alguém, que não seja o seu autor, possa entender os seus módulos separadamente; 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Vantagens Economia de tempo, espaço e esforço. Freqüentemente, necessitamos executar uma mesma tarefa em vários lugares de um mesmo algoritmo. Uma vez que um módulo foi escrito, ele pode, como veremos mais adiante, ser “chamado” quantas vezes quisermos e de onde quisermos no algoritmo, evitando que escrevamos a mesma tarefa mais de uma vez no algoritmo, o que nos poupará tempo, espaço e esforço. 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Módulo Principal O módulo principal organiza e coordena trabalho dos demais módulos O módulo principal solicita a execução dos vários módulos em uma dada ordem, os quais, antes de iniciar a execução, recebem dados do módulo principal e devolvem o resultado de suas computações. Até o momento nossos algoritmos eram compostos de um único módulo. Quando um algoritmo possui mais que um módulo, no momento em que desejamos que a sub-tarefa de um determinado módulo seja realizada, fazemos a referência ao módulo em vez de escrever todo o conjunto de instruções para realizá-la. 22/10/08 Emmanuel Kayembe Ilunga

Componentes de um módulo Os módulos que estudaremos possuem dois componentes: corpo e interface. O corpo de um módulo é o conjunto de instruções que compõe o trecho de algoritmo correspondente ao módulo. Já a interface de um módulo pode ser vista como a descrição dos dados de entrada. O conhecimento da interface de um módulo é tudo o que é necessário para a utilização correta do módulo em um algoritmo. 22/10/08 Emmanuel Kayembe Ilunga

Componentes de um módulo A interface de um módulo é definida pelo nome do módulo e seus respectivos parâmetros. O nome do módulo é um identificador para referenciar o módulo. Um parâmetro é um tipo especial de variável que permite que o valor de um dado possa ser passado entre os módulos e qualquer para que algoritmo o use. Um parâmetro pode ser considerado como os dados de entrada para que o módulo realize sua tarefa. Os parâmetros devem receber valores quando solicitarmos a execução de um módulo. 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Tipos de Módulos Há dois tipos de módulos: Função: sempre retorna um e apenas um valor ao algoritmo que lhe chamou. Cada função tem associada ao seu valor de retorno um tipo explícito. Da mesma maneira com que os parâmetros são fixos para todas as chamada o retorno também é fixo. Ela pode ser vista como uma expressão que é avaliada para um único valor, sua saída, assim como uma função em Matemática. Procedimento: é um tipo de módulo usado para várias tarefas, não produzindo valores de saída, ou seja, nunca retornam valores. 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Criando Funções Sintaxe em C: < tipo_de_retorno> < nome_da_função> ( parâmetro 1,..., parâmetro n) { //declaração das variáveis locais <seqüência de comandos> return <valor_de_retorno> ; } Uma função pode retornar ou não um valor e apenas um valor. O retorno de um valor em C é efetuado pela instrução return e é devolvido para o nome da função. 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Exemplo Suponha que desejemos construir uma função para calcular o quadrado de um número. O número deve ser passado para a função, que calculará o seu quadrado e o devolverá para o algoritmo que a solicitou. int quadrado (int num) { int resultado; resultado = num * num; return resultado; } 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Execução de um Módulo A chamada ao módulo é a forma de solicitar a execução do módulo em um determinado passo do algoritmo. Para fazer a chamada de um módulo devemos especificar qual o nome módulo e passar valores iniciais para seus parâmetros. Esses valores iniciais devem ser do mesmo tipo de dado e especificados na mesma ordem em que foram definidos na interface do módulo. i = quadrado(4); j = quadrado(5 + a); k = quadrado(7) + 3; 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Exemplo 1 #include <stdio.h> int quadrado(int num){ return (num * num); } int main( ){ int i, n; for (i = 1; i <= 3; i++){ printf("\n\tDigite número inteiro positivo: "); scanf("%d", &n); printf("\tQuadrado: %d\n", quadrado(n)); return 0; 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Exemplo 1b #include <stdio.h> int quadrado(int num); int main( ){ int i, n; for (i = 1; i <= 3; i++){ printf("\n\tDigite número inteiro positivo: "); scanf("%d", &n); printf("\tQuadrado: %d\n", quadrado(n)); } return 0; int quadrado(int num){ return (num * num); 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Chamada por Valor Quando uma função é chamada os parâmetros são copiados – “chamada por valor” A função é incapaz de mudar qualquer variável passada com parâmetro Na próxima aula, ponteiros são discutidos que permitem “chamada por referência” Nós já tivemos uma pré-estréia deste mecanismo com scanf 22/10/08 Emmanuel Kayembe Ilunga

Chamada por Valor - Exemplo #include<stdio.h> void change (int v){ v *= 100; printf(“change: v = %d\n”, v); } int main( ){ int var = 5; change (var); printf(“main: var = %d\n”, var); return 0; a função pode alterar "v" a função não pode alterar "var" change: v = 500 main: var = 5 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Escopo dos Dados O escopo de um dado ou variável está vinculado a sua visibilidade em relação aos módulos de um algoritmo. #include <stdio.h> int quadrado(int num){ return (num * num); } int main( ){ int i, num; for (i = 1; i <= 3; i++){ printf("\n\tDigite inteiro positivo: "); scanf("%d", &num); printf("\tQuadrado: %d\n", quadrado(num)); return 0; 22/10/08 Emmanuel Kayembe Ilunga

Variáveis Globais e Locais Uma variável é considerada global quando é declarada no início do algoritmo, antes da declaração das variáveis locais ao algoritmo, podendo ser utilizada por qualquer função, assim a variável passa ser visível no algoritmo principal e nos outros módulos. Uma variável é considerada local quando é declarada dentro de um módulo ou no algoritmo principal e é válida somente dentro da rotina à qual está declarada. 22/10/08 Emmanuel Kayembe Ilunga

Emmanuel Kayembe Ilunga Exemplo #include<stdio.h> int a = 1, b = 2, c = 3; /* variáveis globais */ int f(){ int b, c; /* b e c são variáveis locais */ a = b = c = 4; return (a + b + c); } int main( ){ printf("%3d\n", f()); printf("%3d%3d%3d\n", a, b, c); return 0; 22/10/08 Emmanuel Kayembe Ilunga