Subprogramas - Funções e Sub-rotinas

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Funções em C Prof. Fabiano Utiyama.
Linguagem de Programação I
Linguagem PASCAL Subprogramas
Programação de Computadores
Programação de Computadores
Programação de Computadores
Capítulo II – Algoritmos e Programas
Algoritmo e Programação
Parte I Capítulo 5 Reutilizando código e escrevendo funções.
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Exatas e Naturais Ciência da Computação Aula.
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais
VHDL Linguagem de Descrição e Síntese de Circuitos Digitais Sistemas Digitais.
Prof. Heloise Manica Paris Teixeira
PROGRAMAÇÃO MODULAR (com uso de subprogramas) prof
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
Funções e Subrotinas.
Softwares.
YACC.
OBS: Este ppt não é o definitivo (Versão Beta)
Paulo Henrique Graf Fernandes
Sintaxe de Fortran 25/abril/2006. Comandos Fortran PROGRAM PRINT READ STOP END.
PROGRAMAÇÃO ou LINGUAGEM C?
Vetores, Matrizes e Funções
Algoritmos e Programação
Compilação de programas com make
Estrutura de um Programa:
Introdução a Computação e Cálculo Numérico
PROGRAMAÇÃO I UNIDADE 1.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Linguagens imperativas: Aula prática
Introdução a Programação COM 100 Aula 07 Procedimentos.
Introdução ao uso de vatores na linguagem PASCAL.
Entradas e Saídas Comando PRINT Direciona um dado não formatado para a saída padrão (exemplo: tela) PRINT,,,... Comando READ Lê um dado não formatado da.
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Matlab Mini Curso PET 2012.
Monitoria de Sistemas Inteligentes
Programação em C++ Compiladores
CPC782 Fundamentos de Programação
Ambiente de Execução - Rotinas
Técnicas de Desenvolvimento de Programas
Computação Eletrônica Subprograma. Função O que este programa faz? Program funcao; var n,x: real; begin write('Entre n: '); readln(n); x := cos(n); write(x);
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Linguagem Pascal Prof. Sérgio Rodrigues.
Lógica Estruturada Aplicada
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Algoritmos - Profa. Alciléia1 Profa. Maria Alciléia Alves Rocha Funções em C 2011.
Estruturas de Dados Aula 8: Tipos Abstratos de Dados 30/04/2014.
Algumas notas sobre a linguagem de programação C
Algoritmos Estruturados
Aula01 – Técnicas de Programação II
Algoritmos e Programação
VBA - Introdução Pontifícia Universidade Católica de Goiás
Monitoria de Sistemas Inteligentes IF684
Faculdade Pernambucana - FAPE Setembro/2007
Técnicas de Programação I
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Introdução à Programação
PROGRAMAÇÃO II – PARTE 1 Profa. Maria Augusta Constante Puget.
Trechos de código que permitem reutilização de uma mesma tarefa. Qualquer código PHP pode estar contido no interior de uma função. Não se pode definir.
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Paradigmas das Linguagens de Programação - História
Linguaguem de Programação II
Linguagens de Programação Pedro Lopes MÓDULO 4- Subprogramas (Procedimentos e Funções) 2010/2011.
Programação para Web I Aula 3 CONSTANTES & OPERADORES.
Introdução ao Fortran Agosto/
D E V ISUAL G P ARA C++ Utilização do Dev C++. Todo programa C inicia sua execução chamando a função main(), sendo obrigatória a sua declaração no programa.
Programação e Sistemas da Informação 48 tempos IPTrans, Novembro 2009 Prof. Marisa Gomes.
SUB-ROTINAS EM PASCAL PROGRAMAÇÃO MODULARIZADA 252.
Transcrição da apresentação:

Subprogramas - Funções e Sub-rotinas Aula 6 Subprogramas - Funções e Sub-rotinas Seqüência de instruções compreendida entre uma declaração identificadora do subprograma e o comando END e que fazem parte de um programa. Tanto o programa principal como os subprograma são ditos unidades de programas. As unidades de programa podem ser compiladas independentemente Os subprogramas só podem ser executados a partir de um programa principal.

Funções Um tipo de subprograma que retorna um valor. As funções devem combinar em tipo com as variáveis com as quais será associada. Funções Intrínsecas: Predefinidas dentro da estrutura da linguagem (sin, cos, sqrt, etc) Funções definidas pelo usuário: Funções criadas pelos usuários. [<Tipo da Função>] FUNCTION <Nome> [(argumentos)] Declarações de variáveis Comandos executáveis Comando de atribuição do resultado [Return] END [FUNCTION] [<Nome>]

Compilação e “linkedição” (utilizando o ifort) Function definida em um arquivo externo (subs.f) Programa Principal (prog.f) INTEGER FUNCTION ISOMA(N) ISOMA=0 DO I=1,N ISOMA=ISOMA+I END DO END FUNCTION ISOMA PROGRAM TESTESUBS INTEGER X,S PRINT *,’Informe um numero inteiro:’ READ *,X S=ISOMA(X) PRINT *,’A soma dos ‘,X,’ primeiros número inteiros é: ‘, S END PROGRAM TESTESUBS Compilação e “linkedição” (utilizando o ifort) (1) ifort prog.f subs.f –o prog.exe Compila prog.f e subs.f gerando (*.o) Faz a ligação (linkedição) dos programas objetos, gerando o executável prog.exe (2) ifort – c prog.f ifort – c subs.f ifort prog.o subs.o –o prog.exe Compila e gera prog.o Compila e gera subs.o Faz a ligação de prog.o e subs.o, gerando o executável prog.exe

Sub-rotinas Podem conter quaisquer tipos de comandos. Podem retornar nenhum, um, ou mais valores. Sub-rotinas Intrínsecas: Predefinidas dentro da estrutura da linguagem (call exit) Sub-rotinas definidas pelo usuário: Criadas pelos usuários. SUBROUTINE <Nome> [(argumentos)] Declarações de variáveis Comandos executáveis [Return] END [SUBROUTINE] [<Nome>]

Subrotina definida em um arquivo externo (subs.f) Programa Principal (prog.f) SUBROUTINE TRANSMAT3(A,B) INTEGER I,J INTEGER, DIMENSION(3,3) :: A,B DO I=1,3 DO J=1,3 B(I,J)=a(J,I) END DO END SUBROUTINE TRANSMAT3 PROGRAM TESTSUBS INTEGER X,S,I,J INTEGER, DIMENSION (3,3) :: C,D DATA C/1,4,7,2,5,8,3,6,9/ ! PRINT *,'Informe um número inteiro: ' READ *,X S=ISOMA(x) PRINT *,'A soma dos ',x,' primeiros inteiros é: ',S PRINT *,'---------- x ----------' PRINT *,'Matriz C: ' PRINT '(3(I1,1X))',((C(i,j),j=1,3),i=1,3) ! Transposta da matriz C CALL TRANSMAT3(C,D) ! Escreve a matriz transposta (D) PRINT *,'Matriz transposta (D): ' PRINT '(3(I1,1X))',((D(i,j),j=1,3),i=1,3) PRINT *,'*** FIM ***' END PROGRAM testsubs

O comando COMMON Bloco de memória comum. Usado para transferir valores entre unidades de programas. Sintaxe: COMMON [/ [ r1 ] /] <lista1> [/ [ r2 ] / <lista2>] ... r: rótulo do bloco COMMON. Poder “branco”. Se o primeiro for “branco” o par de barras pode ser suprimido. O nome do rótulo não pode coincidir com o nome de uma unidade de programa. lista1, lista2: listas de variáveis Variáveis especificadas no COMMON compartilham posição de memória em comum entre subprogramas. A lista de variáveis num COMMON pode ser diferente entre unidades de programas. Em uma unidade de programa pode-se ter apenas um bloco COMMON não rotulado, entretanto pode-se ter vários rotulados.

Programa Principal COMMON A(2),B,C(3) Sub-Rotina COMMON A,B,C,D,E,F A(1) A A(2) B C C(1) D C(2) E C(3) F Comando CALL Usado para chamar a execução de uma sub-rotina. Sintaxe: CALL <nome da sub-rotina> [(a,b,...)]

PROGRAM PROGCOMM SUBROUTINE PENDULO REAL Y,K,M,TP,TH COMMON /PEND/Y,TP COMMON /MH/M,TH ! PRINT *,'===== Período do Pendulo =====' PRINT *,'Qual o comprimento do Pendulo (m)?' READ *,Y CALL PENDULO PRINT *,'O periodo do pendulo é: ',TP,' s' PRINT *,'===== Periodo do MHS =====' PRINT *,'Qual a massa da particula (Kg):' READ *,M CALL MHS PRINT *,'O periodo do sistema é: ',TH,' s' END PROGRAM PROGCOMM SUBROUTINE PENDULO REAL, PARAMETER :: PI=3.1415926,G=9.8 REAL Y,TP TP=2.0*PI*SQRT(Y/G) END SUBROUTINE PENDULO SUBROUTINE MHS REAL, PARAMETER :: PI=3.1415926,K=1.0 REAL M,TH TH=2*PI*SQRT(M/K) END SUBROUTINE MHS

O comando INCLUDE Inclui declarações, atribuições e comandos em uma unidade de programa. Sintaxe: INCLUDE ‘nome.ext’ ou INCLUDE “nome.ext” É permitido o uso de caminhos completos no lugar de nome.ext nome.ext pode ter qualquer extensão (.inc é mais comum). Permite que linhas de programas, comuns a várias unidades de programa, sejam agrupadas em um único arquivo que será incluído quando necessário. As instruções no arquivo “nome.inc” são interpretadas como parte do programa e por isso devem seguir as mesmas regras do programa.

CSUBS2.F CTS.INC SUBROUTINE PENDULO INCLUDE ‘CTS.INC’ REAL Y,TP COMMON /PEND/Y,TP ! TP=2.0*PI*SQRT(Y/G) END SUBROUTINE PENDULO SUBROUTINE MHS INCLUDE “CTS.INC” REAL M,TH COMMON /MH/M,TH TH=2*PI*SQRT(M/K) END SUBROUTINE MHS REAL, PARAMETER :: PI=3.1415926,G=9.8,K=1.0