15 a Aula Subprogramação /Subalgoritmos Função e Procedimento



Documentos relacionados
Introdução a Computação

UNIDADE 6 - PROGRAMAÇÃO MODULAR

GFM015 Introdução à Computação Linguagem C / Introdução à Modularização de Programas (uso de subprogramas)

Linguagem de Programação I

Implementando uma Classe e Criando Objetos a partir dela

AULA 1 AULA 2. Estudo dirigido para as três primeiras AULAS de LPI Professora ANITA MACIEL 1º ESTUDO DIRIGIDO

5 Apresentando a linguagem C

Convertendo Algoritmos para a Linguagem C

INTRODUÇÃO À LINGUAGEM C++

Linguagem de Programação

Algoritmos e Programação

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

INF 1005 Programação I

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

Conceitos básicos da linguagem C

Variáveis e Comandos de Atribuição

Capítulo 2: Introdução à Linguagem C

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

compreender a importância de cada estrutura de controle disponível na Linguagem C;

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Estrutura de Dados Básica

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Algoritmo e Técnica de Programação - Linguagem C

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Algoritmos e Técnicas de

9 Comandos condicionais

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

TÉCNICAS DE PROGRAMAÇÃO

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

Linguagem de Programação C

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

LINGUAGEM C. Estrutura básica de um programa

O Processo de Programação

Linguagens de Programação Aula 10

17 - Funções e Procedimentos em C Programação Modular

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Introdução a Java. Hélder Nunes

LTP-IV. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Programação de Computadores I

Folha Prática 2. Lab. 2

Programação: Tipos, Variáveis e Expressões

Apresentação. Rio de Janeiro, 19 de fevereiro de 2002 Waldemar Celes

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Trabalho 3: Agenda de Tarefas

Algoritmos e Programação II. Sobrecarga

Olimpíadas de Informática

Estrutura de um programa em linguagem C

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Estruturas de entrada e saída

Computação II Orientação a Objetos

Introdução à Programação

Programação de Computadores

PROGRAMA DE DISCIPLINA

Programação Orientada a Objeto

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

BC0505 Processamento da Informação

1 Funções básicas de implementação de arquivos

PROGRAMA DE DISCIPLINA

Simulado Informática Concurso Correios - IDEAL INFO

Componentes da linguagem C++

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Neste artigo estudaremos os conceitos relacionados às matrizes unidimensionais (vetores) e multidimensionais.

Algoritmo para converter uma temperatura em Fahrenheit para Celsius

Linguagem C Funções definidas pelo usuário. Lógica de Programação

O COMPUTADOR. Introdução à Computação

Algoritmos e Programação Estruturada

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

Estruturas de Repetição

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Módulo 10. Medição do Desempenho

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++

Aula 12: Funções. Pré-requisitos: Todas as aulas anteriores deste módulo. 1. Aproveitando Códigos no Programa

Programa ConsoleRPN. PUC-Rio CIV Sistemas Gráficos para Engenharia Luiz Fernando Martha & André Maués Brabo Pereira

Introdução à Linguagem C

Introdução a Linguagem C

Estruturas de Repetição

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Linguagem C. Programação Estruturada. Funções Matemáticas. Prof. Luis Nícolas de Amorim Trigo

10/02/2015. Introdução. Podemos classificar os tipos de dados a serem processados em dados e instruções Dados: Algoritmos e Lógica de Programação

Transcrição:

FISP 1/6 15 a Aula Subprogramação /Subalgoritmos Função e Procedimento Objetivo: Simplificação e racionalização na elaboração de algoritmos mais complexos Recursos: Estruturação de algoritmos e modularização de sistemas, tendo como recurso a divisão de problemas grandes e complexos em problemas menores e de solução mais simples. Vantagens: Redução no número de linhas de programação, facilidade no entendimento e na manutenção de algoritmos e possibilidade de uso algoritmos (softwares) desenvolvidos por outras pessoas (divisão de tarefas para vários programadores). A ideia de reutilização de software tem sido adotada por muitos grupos de desenvolvimento de sistemas de computação (*), devido à economia de tempo e trabalho que proporcionam. O objetivo principal é a criação de uma BIBLIOTECA onde são armazenados algoritmos que podem ser reutilizados em outras aplicações. Tratam-se normalmente de algoritmos que executam tarefas corriqueiras e disponibilizados pelo fornecedor do compilador. No caso das linguagens de programação de alto nível o recurso de biblioteca é muito utilizado, como pode ser visto na linguagem C onde os comandos scanf e printf são funções (subalgoritmos) que foram desenvolvidas para realizar a tarefa de leitura e escrita padrão respectivamente, e estão armazenadas na biblioteca (arquivo cabeçalho) stdio.h. Um outro exemplo de biblioteca é o math.h, onde estão armazenadas as principais funções matemáticas: raiz quadrada, seno, cosseno, logaritmo, exponencial, potência, etc.. (*) Este assunto tem sido muito abordado numa nova área chamada Engenharia de Software Definição de Subalgoritmo É um nome dado a um trecho de um algoritmo mais complexo e que, em geral, encerra em si próprio um pedaço da solução de um problema maior o algoritmo principal a que ele é subordinado.

FISP 2/6 Estrutura de um algoritmo completo Um algoritmo completo é composto por um algoritmo principal e diversos subalgoritmos (tantos quantos forem necessários). O algoritmo principal é aquele por onde a execução do programa se inicia e este pode "chamar" os demais subalgoritmos. Na figura 1, a seguir, pode ser visto a estrutura de um algoritmo completo típico, onde são indicados na forma de módulos o algoritmo principal e os subalgoritmos. <biblioteca do algoritmo completo> <declaração das variáveis globais> cabeçalho do 1 o subalgoritmo Lembrar que as variáveis podem ser globais, locais e na lista de parâmetros de subalgoritmos corpo do 1 o subalgoritmo cabeçalho do 2 o subalgoritmo corpo do 2 o subalgoritmo cabeçalho do N o subalgoritmo corpo do N o subalgoritmo. no corpo do algoritmo principal além das instruções básicas podem ocorrer as "chamadas" dos subalgoritmos. corpo do algoritmo principal Cabeçalho do subalgoritmo No cabeçalho de um subalgoritmo são definidos o nome e o tipo do subalgoritmo, bem como os seus parâmetros.

FISP 3/6 Estrutura de um subalgoritmo Figura 1 estrutura de um algoritmo completo típico Como pôde ser visto na figura anterior, os subalgoritmos são partes integrantes do algoritmo principal e são descritos no início do mesmo. Agora o problema é saber como elaborar um subalgoritmo, ou seja, qual é a estrutura interna de subalgoritmo. cabeçalho do subalgoritmo corpo do subalgoritmo //inicio //fim Como foi visto anteriormente, no cabeçalho de um subalgoritmo são definidos o nome e o tipo do subalgoritmo, bem como os seus parâmetros e as variáveis locais. O nome de um subalgoritmo é o nome simbólico pelo qual ele é chamado por outro algoritmo. O corpo de um subalgoritmo contém as instruções que são executadas cada vez que ele é invocado (chamado). Variáveis locais são aquelas definidas dentro do próprio subalgoritmo e só podem ser utilizadas pelo mesmo. Na Linguagem as variáveis locais devem ser declaradas no corpo do subalgoritmo. Parâmetros ou argumentos são canais por onde os dados são transferidos pelo algoritmo chamador a um subalgoritmo, e vice-versa. Para que possa iniciar a execução das instruções em seu corpo, um subalgoritmo às vezes precisa receber dados do algoritmo que o chamou e, ao terminar sua tarefa, o subalgoritmo deve fornecer ao algoritmo chamador os resultados da mesma. Esta comunicação bidirencional pode ser realizada de duas formas que serão estudadas mais à frente: por meio de variáveis globais ou por meio da passagem de parâmetros. O tipo de um subalgoritmo é definido em função do número de valores que o subalgoritmo retorna ao algoritmo que o chamou. Assim, os subalgoritmos podem ser classificados em dois tipos: Funções, que retornam um, e somente um, valor ao algoritmo chamador; Procedimentos, que não retornam valor ao algoritmo chamador. A estrutura de um subalgoritmo tipo Função O nome função para um subalgoritmo origina-se da idéia de função matemática (por exemplo, raiz quadrada, seno, cosseno, tangente, logaritmo, etc.), onde um valor é calculado a partir de outro(s) fornecido(s) à função.

FISP 4/6 Exemplo: X=π/6=30 o sen(x)=sen(π/6)=0.5 onde X é o parâmetro ou argumento da função sen e π/6 é o valor armazenado pelo parâmetro X. Já 0.5 é o valor calculado a partir da função sen(x). Sintaxe em Linguagem C <tipo_de_dado> <nome>(<lista de parâmetros>) <variáveis locais>; <comando composto>; return <expressão ou valor>; onde: <nome> é o nome simbólico pelo qual o a função é chamada por outros algoritmos; <lista de parâmetros> são os tipos e nomes dos parâmetros da função; <tipo_de_dado> é o tipo de dado (int, float, double, char ou string) da informação retornada pela função ao algoritmo chamador; <variáveis locais> lista das variáveis locais à função; <comando composto> é conjunto de instruções do corpo da função. O uso ou chamada ou invocação de uma função sempre é feita pelo nome da função com o seus respectivos parâmetros ou argumentos entre parênteses. A função será executada e, ao seu término, o trecho que a invocou é substituído pelo valor retornado pela mesma dentro da expressão matemática em que se encontra. Especificamente no corpo da função e, somente neste caso, deve ser adicionado o comando return <expressão ou valor>, que é responsável pelo retorno ao algoritmo chamador do valor calculado pela função. Exemplo 1: Algoritmo que utiliza uma função que calcula um número real elevado ao quadrado. #include<stdio.h> float X,Y; float QUAD(float W) float Z; Z=W*W; return Z; int main() printf( \ndigite um número= ); scanf( %f,&x); Y=QUAD(X); printf( \ny=%f,y); system( PAUSE ); return 0; Subalgoritmo tipo função QUAD(W) Corpo do algoritmo principal (algoritmo chamador)

FISP 5/6 A estrutura de um subalgoritmo tipo Procedimento O nome Procedimento para um subalgoritmo origina-se da idéia de um conjunto de comandos e instruções que realizam uma tarefa específica tal como um procedimento. Este se diferencia do subalgoritmo função, pois não retorna valor após ser chamado por um algoritmo. A estrutura de um procedimento é similar à da função com exceção do comando return que não é utilizado, pois o procedimento não retorna valor, e também é associado o tipo void ( vazio em inglês ) ao nome do procedimento. Sintaxe em Linguagem C void <nome>(<lista de parâmetros>) <variáveis locais>; <comando composto>; onde: <nome> é o nome simbólico pelo qual o procedimento é chamado por outros algoritmos; <lista de parâmetros> são os tipos e nomes dos parâmetros do procedimento; <variáveis locais> lista das variáveis locais ao procedimento; <comando composto> é conjunto de instruções do corpo do procedimento. O uso ou chamada ou invocação de um procedimento sempre é feita pelo nome do procedimento com os seus respectivos parâmetros ou argumentos entre parênteses. Ao contrário da função, o procedimento é chamado em comandos isolados de um algoritmo, como as instruções de entrada (scanf) e saída (printf) de dados. Exemplo 2: Algoritmo que utiliza um procedimento que realiza a tarefa de escrita de um texto. #include<stdio.h> char X[10]; void ESCRITA(char texto[10]) printf( \n*********************** ); printf( \n %s,texto); printf( \n*********************** ); int main() ESCRITA( Meu nome ); system( PAUSE ); return 0; Subalgoritmo tipo procedimento ESCRITA Corpo do algoritmo principal (algoritmo chamador)

FISP 6/6 Observações importantes Variáveis globais são aquelas definidas no início de um algoritmo e visíveis (utilizáveis) por todos os subalgoritmos e pelo algoritmo principal. Variáveis locais são definidas dentro de um subalgoritmo e só podem ser usadas dentro do mesmo, não sendo visíveis fora deste escopo. Parâmetros são canais pelos quais se estabelece uma comunicação bidirencional entre um subalgoritmo e o algoritmo chamador (o algoritmo principal ou outro subalgoritmo). Implementação de subalgoritmo na linguagem C A grande maioria das linguagens de programação subdivide os subalgoritmos em função e procedimentos (ou subrotinas), mas especificamente na linguagem C todos os subalgoritmos são tratados como funções. Porém as funções no C podem ser classificadas em dois tipos: Funções que retornam valores; Funções que não retornam valores (uso do void vazio ). Como pode ser observada, a diferença acima descrita tem o mesmo conceito apresentado anteriormente, ou seja, a diferença entre função e procedimento. Exemplo de função em C (procedimento) que não retorna valor. Linguagem C #include<stdlib.h> #include<stdio.h> void muda_valor(int a) //exemplo de função que não retorna valor //início da função a=5; printf("valor na funcao %d\n",a); //término da função int main() int valor=10; //declaração da variável int valor com 10 printf("antes da funcao %d\n",valor); muda_valor(valor); //chamada de função que não retorna valor printf("depois da funcao %d\n",valor); system("pause"); Output (avalie o quê aconteceu!) Antes da funcao 10 Valor na funcao 5 Depois da funcao 10 Pressione qualquer tecla para continuar...