Programação com Funções. Subprogramas do tipo Função
|
|
|
- Valdomiro Regueira de Andrade
- 9 Há anos
- Visualizações:
Transcrição
1 Programação com Funções Problemas complexos divididos em subproblemas Subprogramas funções (function) subrotinas (subroutine) Fortran contém funções intrínsecas, ou de biblioteca. Exemplos de funções intrínsecas: SQRT, ABS, SIN, EXP, INT, FLOOR, LOG, etc. Exemplo INTEGER :: Numero_1, Numero_2, Pequeno REAL :: Alfa, Beta, x PRINT *, ABS(x) Alfa = ANINT(100.0 * Beta) / Pequeno = MIN(0, Numero_1, Numero_2) João Miguel da Costa Sousa 135 Subprogramas do tipo Função O programador pode necessitar de definir funções (functions) em Fortran As funções definidas pelo programador são utilizadas da mesma forma que as funções prédefinidas. Subprograma Função cabeçalho de função zona de especificações zona de instruções END FUNCTIONnome_funcao João Miguel da Costa Sousa 136 1
2 Cabeçalho de funções Cabeçalho de função Forma: FUNCTION nome_funcao(lista_argumentos) ou tipo FUNCTION nome_funcao(lista_argumentos) Onde: o nome_funcao pode ser qualquer identificador válido em Fortran; a lista_argumentos é um identificador ou uma lista separada por vírgulas; o tipo é um identificador opcional, que indica o tipo dos argumentos retornados pela função. Dá um nome à função e declara os seus argumentos. A lista_argumentos é a lista dos parâmetros formais que servem para passar a informação do subprograma a outro programa. João Miguel da Costa Sousa 137 Definição de Funções Zona de especificações dum subprograma é idêntica à zona de especificações de um programa, excepto: Deve declarar o tipo da função, se este não tiver sido declarado no cabeçalho; Deve declarar o tipo de cada um dos parâmetros formais. Deve igualmente conter um especificadorintent. Zona de instruções deve conter: nome_funcao = expressao onde expressao pode conter: qualquer expressão envolvendo constantes, argumentos formais da função, outras variáveis declaradas no subprograma, referências para outras funções. João Miguel da Costa Sousa 138 2
3 Ex: Conversão de Temperaturas Conversão graus Fahrenheit em Celsius: Celsius = (Fahrenheit 32.0) / 1.8 Cabeçalho: FUNCTION Fahr_em_Celsius(Temperatura) Zona de especificações deve conter: REAL :: Fahr_em_Celsius Outra possibilidade: REAL FUNCTION Fahr_em_Celsius(Temperatura) A zona de declarações deve conter igualmente: REAL, INTENT(IN) :: Temperatura João Miguel da Costa Sousa 139 Conversão de Temperaturas!--Fahr_em_Celsius ! Funcao que converte uma temperatura em! graus Fahrenheit em graus Celsius!! Recebe: Temperatura em Fahrenheit! Retorna: Temperatura em Celsius! FUNCTION Fahr_em_Celsius(Temperatura) REAL :: Fahr_em_Celsius REAL, INTENT(IN) :: Temperatura! Calcula a temperatura em graus Celsius Fahr_em_Celsius = (Temperatura 32.0) / 1.8 END FUNCTION Fahr_em_Celsius João Miguel da Costa Sousa 140 3
4 Posicionar subprogramas Formas de posicionar um subprograma: antes de END PROGRAM, subprograma interno; num módulo, subprograma modular; após END PROGRAM, subprograma externo. João Miguel da Costa Sousa 141 Secção de subprogramas Secção de subprogramas Forma: CONTAINS subprograma_1 subprograma_2... subprograma_n onde cada subprograma_i é uma função ou subrotina que não contém subprogramas. Com esta definição, os subprogramas são internos e podem ser apenas utilizados por este programa. João Miguel da Costa Sousa 142 4
5 Prog: Conversão Temperaturas PROGRAM Conversao_de_Temperaturas! ! Programa que converte varias temperaturas de graus Fahrenheit na! temperatura correspondente em Celsius. A funcao Fahr_em_Celsius e! utilizada para converter as temperaturas. Identificadores usados:! Fahr_em_Celsius: funcao interna que converte temperaturas Fahrenheit! em Celsius! TempFahrenheit: temperatura em Fahrenheit a converter! TempCelsius: temperatura em graus Celsius! Resposta: resposta do utilizador a pergunta! Mais dados a converter?! Entradas: TempCelsius, Resposta! Saida: TempFahrenheit! IMPLICIT NONE REAL :: TempFahrenheit, TempCelsius CHARACTER (1) :: Resposta DO! Le temperatura em graus Celsius WRITE(*, (1X, A), ADVANCE = NO ) Escreva a & & temperatura em graus Fahrenheit: READ(*,*) TempFahrenheit! Usa a funcao Fahr_em_Celsius para converter temperatura TempCelsius = Fahr_em_Celsius(TempFahrenheit) João Miguel da Costa Sousa 143 Prog: Conversão Temperaturas! Mostra os resultados WRITE(*, (1X, 2(F6.2, A)) ), TempFahrenheit, & em graus Fahrenheit e & & equivalente a, TempCelsius, em Celsius.! Verifica se existem mais temperaturas a converter WRITE (*, (/ 1X, A), ADVANCE = NO ) & Existem mais temperaturas a converter (S ou N)? READ(*,*) Resposta IF (Resposta /= S ) EXIT END DO CONTAINS!--Fahr_em_Celsius ! Funcao que converte graus Fahrenheit em Celsius!! Recebe: Temperatura em Fahrenheit! Retorna: Temperatura em Celsius! FUNCTION Fahr_em_Celsius(Temperatura) REAL :: Fahr_em_Celsius REAL, INTENT(IN) :: Temperatura Fahr_em_Celsius = (Temperatura - 32.) / 1.8 END FUNCTION Fahr_em_Celsius END PROGRAM Conversao_de_Temperaturas João Miguel da Costa Sousa 144 5
6 Resultados Exemplo de execução: > Escreva a temperatura em graus Fahrenheit: 32 > em graus Fahrenheit e equivalente a 0.00 em Celsius. > Existem mais temperaturas a converter (S ou N)? N João Miguel da Costa Sousa 145 Associação de argumentos Referência a uma função: nome_funcao(lista_argumentos) Inclusão de INTENT(IN)assegura que o valor do argumento actual é passado ao argumento formal; o valor do argumento formal não é alterado enquanto a função estiver a ser executada. Se INTENT(IN) não é utilizado, uma alteração do argumento formal implica uma alteração do argumento actual! O número e o tipo dos argumentos actuais devem corresponder aos dos argumentos formais. João Miguel da Costa Sousa 146 6
7 Função factorial Esta função contém uma variável local!--factorial ! Funcao que calcula o factorial N! de N,! que e 1 se N = 0, e 1 * 2 * * N se N > 0.!! Recebe: Inteiro N! Retorna: Inteiro N!!! Nota : I e uma variavel interna do tipo! Inteiro, usada como contador! FUNCTION Factorial(N) INTEGER :: Factorial INTEGER, INTENT(IN) :: N INTEGER :: I Factorial = 1 DO I = 2, N Factorial = Factorial * I END DO END FUNCTION Factorial João Miguel da Costa Sousa 147 Alcance Entidades como variáveis, constantes, tipos e subprogramas podem ser declaradas em vários pontos. As partes do programa onde esses itens são visíveis constitui o seu alcance. Princípio fundamental do alcance Alcance de uma entidade é o programa ou subprograma onde é declarado. 1ª regra do alcance Itens declarados em subprogramas não são acessíveis fora deste; são itens locais. 2ª regra do alcance Itens declarados no programa principal são entidades globais, e são acessíveis em qualquer subprograma interno, excepto naqueles onde entidades locais tenham o mesmo nome. João Miguel da Costa Sousa 148 7
8 Módulos Programação modular Blocos principais são facilmente identificados, colocados em subprogramas individualizados, e testados separadamente. Programas mais simples de desenvolver, testar, perceber e modificar. Módulos (versão simplificada) Forma: MODULE nome_modulo CONTAINS subprograma_1 subprograma_2... subprograma_n END MODULE nome_modulo onde cada subprograma_i são subrotinas ou funções. São chamados subprogramas módulo. Conjunto de subprogramas constitui uma biblioteca João Miguel da Costa Sousa 149 Exemplo de biblioteca Biblioteca de conversão de temperaturas MODULE Biblioteca_Temperatura! ! Modulo que contem os seguintes subprogramas para! conversao de temperaturas:! Fahr_em_Celsius - conversao de Fahreneit em Celsius! Celsius_em_Fahr - conversao de Celsius em Fahreneit! IMPLICIT NONE CONTAINS!--Fahr_em_Celsius ! Funcao que converte graus Fahrenheit em Celsius! Recebe: Temperatura em Fahrenheit! Retorna: Temperatura em Celsius! FUNCTION Fahr_em_Celsius(Temperatura) REAL :: Fahr_em_Celsius REAL, INTENT(IN) :: Temperatura Fahr_em_Celsius = (Temperatura - 32) / 1.8 END FUNCTION Fahr_em_Celsius João Miguel da Costa Sousa 150 8
9 Biblioteca temperaturas!--celsius em_fahr ! Funcao que converte graus Celsius em Fahrenheit! Recebe: Temperatura em Celsius! Retorna: Temperatura em Fahrenheit! FUNCTION Celsius_em_Fahr(Temperatura) REAL :: Celsius_em_Fahr REAL, INTENT(IN) :: Temperatura Celsius_em_Fahr = 1.8 * Temperatura + 32 END FUNCTION Celsius_em_Fahr! Outras funcoes relacionadas com temperatura END MODULE Biblioteca_Temperatura Utilização de módulos Instrução USE Forma: USE nome_modulo USE nome_modulo, ONLY: lista João Miguel da Costa Sousa 151 Compilação e ligação de módulos Compilação - programa fonte convertido em linguagemmáquina. Cria os ficheiros objecto (.OBJ em DOS) Ligação - funções contidas em módulos são ligadas ao programa principal, criando o programa executável, guardado num ficheiro executável (.EXE em DOS) João Miguel da Costa Sousa 152 9
10 Funções recursivas Função recursiva - função que se chama a ela própria. Exemplo: função factorial 0! = 1 n! = n (n 1)!, se n > 0 Função definida recursivamente: 1. Âncora, ou caso mais simples; 2. Passo recursivo, onde os valores são definidos com base nos anteriores. Exemplo para 4! 4! = 4 3!, etc. João Miguel da Costa Sousa 153 Definição de funções recursivas Em Fortran são definidas com: RECURSIVE no cabeçalho RESULT no fim do cabeçalho, indicando a variável a retornar o valor da função, em vez da própria função. O tipo da função será o tipo desta variável. Função Fortran para factorial!--factorial ! Funcao que calcula factoriais recursivamente!! Recebe: inteiro n >= 0! Retorna: n!! RECURSIVE FUNCTION Factorial(n) RESULT(Fact) INTEGER :: Fact! Variavel com resultado INTEGER, INTENT(IN) :: n IF (n == 0) THEN Fact = 1 ELSE Fact = n * Factorial(n - 1) END IF END FUNCTION Factorial João Miguel da Costa Sousa
11 Programação com Subrotinas Análise top-down: problemas complexos divididos em subproblemas Diferenças entre funções e subrotinas Subrotinas podem retornar mais de um ou nenhum valor ao programa principal. As funções retornam valores através do nome; subrotinas retornam através de argumentos. Uma função é chamada pelo seu nome, enquanto uma subrotina usa instrução CALL Subprograma Subrotina cabeçalho de subrotina zona de especificações zona de instruções END SUBROUTINEnome_subrotina João Miguel da Costa Sousa 155 Subrotinas - definições Cabeçalho de subrotina Forma: ou SUBROUTINE nome_subrotina(lista) RECURSIVE SUBROUTINE nome_subrotina(lista) Onde: o nome_subrotina pode ser qualquer identificador válido em Fortran; a lista é um identificador ou uma lista separada por vírgulas. Dá um nome à subrotina e declara os seus argumentos. A lista contém os parâmetros formais, que servem para passar a informação de e para a subrotina. João Miguel da Costa Sousa
12 Instrução CALL Instrução CALL Forma: CALL nome_subrotina(lista) Onde: o nome_subrotina constitui o nome da subrotina a ser chamada; a lista contém as variáveis, constantes ou expressões constituindo os parâmetros actuais. Os tipos dos parâmetros actuais e formais devem coincidir. João Miguel da Costa Sousa 157 Ex: Conversão coordenadas Conversão coordenadas polares em cartesianas x = r cos θ y = r sin θ!--converte_em_cartesianas ! Subrotina que converte coordenadas polares! em cartesianas.!! Recebe: Coordenadas polares R e Theta(radianos)! Retorna: Coordenadas cartesianas X e Y! SUBROUTINE Converte_em_Cartesianas(R, Theta, X, Y) REAL, INTENT(IN) :: R, Theta REAL, INTENT(OUT) :: X, Y X = R * COS(Theta) Y = R * SIN(Theta) END SUBROUTINE Converte_em_Cartesianas João Miguel da Costa Sousa
13 Prog: Conversão coordenadas PROGRAM Polar_em_Cartesianas! ! Programa que aceita coordenadas polares num ponto, e mostra as coordenadas! cartesianas correspondentes. A subrotina interna Converte_em_Cartesianas e! utilizada para a! conversao. Variaveis usadas:! CoordR, CoordT : coordenadas polares de um ponto! CoordX, CoordY : coordenadas cartesianas de um ponto! Resposta: : Se sim existem mais dados a converter!! Entradas: CoordR, CoordT, Resposta! Saidas: CoordX, CoordY! IMPLICIT NONE REAL :: CoordR, CoordT, CoordX, CoordY CHARACTER (1) :: Resposta! Le e converte coordenadas até nao haver mais dados DO WRITE (*, (1X, A), ADVANCE = NO ) & Escreva as cordenadas polares R e Theta(radianos): READ (*,*) CoordR, CoordT CALL Converte_em_Cartesianas(CoordR, CoordT, CoordX, CoordY) João Miguel da Costa Sousa 159 Prog: Conversão coordenadas (2)! Mostra os resultados WRITE (*,*) Coordenadas cartesianas:, CoordX, CoordY WRITE (*, (1X, A), ADVANCE = NO ) Mais coordenadas a converter? (S ou N)? READ *, Response IF (Response /= S ) EXIT END DO CONTAINS!--Converte_em_Cartesianas ! Subrotina que converte coordenadas polares! em cartesianas.! Recebe: Coordenadas polares R e Theta(radianos)! Retorna: Coordenadas cartesianas X e Y! SUBROUTINE Converte_em_Cartesianas(R, Theta, X, Y) REAL, INTENT(IN) :: R, Theta REAL, INTENT(OUT) :: X, Y X = R * COS(Theta) Y = R * SIN(Theta) END SUBROUTINE Converte_em_Cartesianas END PROGRAM Polar_em_Cartesianas João Miguel da Costa Sousa
14 Exemplo de execução > Escreva as cordenadas polares R e Theta(radianos): 1.0, 0 > Coordenadas cartesianas: E+00 > Mais coordenadas a converter? (S ou N)? S > Escreva as cordenadas polares R e Theta(radianos): 1.0, 1.57 > Coordenadas cartesianas: E > Mais coordenadas a converter? (S ou N)? N João Miguel da Costa Sousa 161 Associação de argumentos Quando a instrução CALL é executada: CALL Converte_em_Cartesianas(CoordR, CoordT, CoordX, CoordY) Parâmetros Actuais CoordR CoordT CoordX CoordY Parâmetros Formais R Theta X Y Após a execução da subrotina: Parâmetros Actuais CoordR CoordT CoordX CoordY Parâmetros Formais R Theta X Y João Miguel da Costa Sousa
15 Parâmetros de entrada/saída Se os parâmetros formais forem declarados com INTENT(INOUT): parâmetro_actual parâmetro formal Como OUT e INOUT são utilizados para retornar valores para o programa principal, os parâmetros utilizados deverão ser variáveis. O número e tipo dos parâmetros actuais e formais devem concordar! Se um parâmetro não é definido, o Fortran toma-o como INOUT. Isto é extremamente perigoso! João Miguel da Costa Sousa 163 Números aleatórios Não é possível gerar números aleatórios em computador Geram-se assim números pseudo-aleatórios. O valor inicial é dado por uma semente, dada por RANDOM_SEED em Fortran 90. Cada novo número aleatório obtido é utilizado no cálculo do seguinte. Operação efectuada pela subrotina RANDOM_NUMBER. Produz números aleatórios entre 0 e 1 com distribuição uniforme. João Miguel da Costa Sousa
16 Exemplo Exemplo: Lançar dois dados! Introduz um valor para a semente CALL RANDOM_SEED!... CALL RANDOM_NUMBER(R1) CALL RANDOM_NUMBER(R2) Dado_1 = 1 + INT(6*R1) Dado_2 = 1 + INT(6*R2) Par = Dado_1 + Dado_2 Onde R1 e R2 são dois números aleatórios, e Par é a soma dos valores dos dois dados. João Miguel da Costa Sousa 165 Subprogramas como parâmetros Subprogramas podem ser parâmetros devem ser modulares, externos ou intrínsecos; Não podem usar o atributo INTENT Subprogramas como parâmetros: externos - declarados após END PROGRAM intrínsecos - funções pré-definidas em Fortran, como SIN João Miguel da Costa Sousa
17 Exemplo Exemplo: Integral zb a f ( x) dx PROGRAM Integral_Numerico! ! Programa que aproxima o integral de uma função no! intervalo [A,B] usando o metodo de aproximacao trapezoidal,! calculada pela subrotina Integral; o integrando e o # de! subintervalos são passados como parametros para Integral. A! funcao Integrando e importada do modulo Funcao_Integrando.! Identificadores usados:! A, B : limites do intervalo de integracao! Integral: subrotina que aproxima o integral de F em[a,b]! Integrando: o integrando! Numero_subintervalos: # de subintervalos em que [A,B] e! subdividido!! Entradas: A, B,, Numero_subintervalos! Saidas: Aproximacao do integral de F em [A,B]! USE Funcao_integrando! Modulo contendo integrando IMPLICIT NONE REAL :: A, B INTEGER :: Numero_subintervalos João Miguel da Costa Sousa 167 Prog: Integral numérico WRITE (*, (1X, A), ADVANCE = NO ) & Escreva os limites do intervalo e o # de subintervalos: READ *, A, B, Numero_subintervalos CALL Integral(Integrando, A, B, Numero_subintervalos) CONTAINS!--Integral ! Subrotina que calcula a aproximacao trapezoidal do integral da! funcao F no intervalo [A,B] usando N subintervalos. Variaveis locais:! I : contador! DeltaX : comprimento dos subintervalos! X : ponto de subdivisao! Y : valor da funcao no ponto X! Soma : soma aproximada!! Recebe: Funcao F, limites A, B e numero N subintervalos! Retorna: Valor aproximado do integral F em [A,B]! SUBROUTINE Integral (F, A, B, N) REAL, INTENT(IN) :: A, B INTEGER, INTENT(IN) :: N REAL :: F, DeltaX, X, Y, Soma INTEGER :: I! Calcula comprimento dos subintervalos! e inicializa as aproximacoes Soma e X DeltaX = (B - A)/ REAL(N) X = A Soma = 0.0 João Miguel da Costa Sousa
18 Prog: Integral numérico (concl.)! Calcula a soma aproximada DO I = 1, N - 1 X = X + DeltaX Y = F(X) Soma = Soma + Y END DO Soma = DeltaX * ((F(A) + F(B)) / Soma PRINT 10, Numero_subintervalos, Soma 10 FORMAT (1X, Aproximacao trapezoidal usando, I4, subintervalos e de, F10.5) END SUBROUTINE Integral END PROGRAM Integral_Numerico! MODULE Funcao_integrando! ! Modulo contendo a funcao Integrando! CONTAINS FUNCTION Integrando(X) REAL :: Integrando REAL, INTENT(IN) :: X Integrando = EXP(X**2) END FUNCTION Integrando END MODULE Funcao_integrando João Miguel da Costa Sousa 169 Subprogramas e parâmetros Fortran não controla directamente número de parâmetros de uma função. Para isso usam-se blocos INTERFACE contendo: Tipo do valor retornado pela função Número de argumentos e tipo de cada um deles Exemplo com a função Integrando: INTERFACE FUNCTION Integrando(X) REAL :: Integrando REAL, INTENT(IN) :: X END FUNCTION Integrando END INTERFACE João Miguel da Costa Sousa
19 Inteligência Artificial Projecta sistemas computacionais com características associadas à inteligência humana, tais como: aprendizagem raciocínio dedutivo linguagem natural reconhecimento e processamento de imagens Áreas da IA Sistemas periciais (controlo, consultoria, etc.) Reconhecimento de padrões (voz, escrita, etc.) Visão computacional Robótica (máquinas sensoriais) Técnicas de procura (procura na Internet) Jogos Muitos destes problemas são recursivos João Miguel da Costa Sousa 171 Subrotinas recursivas Problema: Torres de Hanoi Pretende-se resolver o puzzle da figura, onde se devem mover os discos do poste da esquerda para a direita, seguindo as seguintes regras: 1. Quando um disco é movido, deve ser posicionado no topo de um dos postes. 2. Só se pode mover um disco de cada vez, e este deve ser o do topo de um dos postes. 3. Um disco maior nunca pode estar situado em cima de um mais pequeno. Problema simples para um número pequeno de discos; torna-se difícil para mais discos: 7, 8, etc. João Miguel da Costa Sousa
20 Exemplo: Torres de Hanoi Algoritmo Este algoritmo recursivo resolve o puzzle das Torres de Hanoi. Entradas: Número N de discos a mover. Saídas: A sequência de movimentos a efectuar de forma a resolver o puzzle. Recebe N. Se existe um disco: Passo mais simples: Move o disco do poste A para C, resolvendo o puzzle. Caso contrário faz o seguinte: Passo recursivo: Move os N - 1 discos do poste A para o poste B, usando o poste C como poste auxiliar. Move o disco maior restante de A para C. Move os N - 1 discos do poste B para o poste C, usando o poste A como poste auxiliar. João Miguel da Costa Sousa 173 Programa: Torres de Hanoi PROGRAM Torres_de_Hanoi! ! Programa que resolve o puzzle das Torres de Hanoi de uma! forma recursiva, usando a subrotina Move. Identificadores:! Poste_1, Poste_2, Poste_3 : marcas dos postes!! Numero_Discos : numero de discos! Move : Subrotina para mover os discos!! Entrada : Numero_Discos! Saidas : Sequencia de movimntos que resolve o puzzle! IMPLICIT NONE CHARACTER(*), PARAMETER :: Poste_1 = A, Poste_2 = B, & Poste_3 = C, INTEGER :: Numero_discos WRITE (*, (1X, A), ADVANCE = NO ) & Escreva o numero de discos: READ *, Numero_discos PRINT * CALL Move(Numero_discos, Poste_1, Poste_2, Poste_3) CONTAINS João Miguel da Costa Sousa
21 Programa: Torres de Hanoi (concl.)!--move ! Subrotina recursiva que move N discos de PosteInicial para PosteFinal! usando um poste auxiliar. Variaveis:! N : numero de discos! PosteInic : poste contendo os discos! PosteFin : poste onde ficarao os discos! PosteAux : poste auxiliar de armazenamento! Recebe : N, PosteInic, PosteFin, PosteAux! Retorna: Sequencia de movimentos a efectuar! RECURSIVE SUBROUTINE Move(N, PosteInic, PosteAux, PosteFin) INTEGER, INTENT(IN) :: N CHARACTER, INTENT(IN) :: PosteInic, PosteAux, PosteFin IF (N == 1) THEN! Caso mais simples PRINT *, Move disco de, PosteInic, para,postefin ELSE! Passo recursivo! Move n -1 discos de PosteInic para PosteAux! utilizando PosteFin como poste auxiliar CALL Move(N - 1, PosteInic, PosteFin, PosteAux)! Move disco de PosteInic para PosteFin CALL Move(1, PosteInic,, PosteFin)! Move n -1 discos de PosteAux para PosteFin! utilizando PosteInic como poste auxiliar CALL Move(N - 1, PosteAux, PosteInic, PosteFin) END IF END SUBROUTINE Move END PROGRAM Torres_de_Hanoi João Miguel da Costa Sousa 175 Exemplo de execução > Escreva o numero de discos: 4 > Move disco de A para B > Move disco de A para C > Move disco de B para C > Move disco de A para B > Move disco de C para A > Move disco de C para B > Move disco de A para B > Move disco de A para C > Move disco de B para C > Move disco de B para A > Move disco de C para A > Move disco de B para C > Move disco de A para B > Move disco de A para C > Move disco de B para C João Miguel da Costa Sousa
Programação estruturada no Fortran 90-3
Programação estruturada no Fortran 90-3 Departamento de Física UFPel Em Fortran 90 existem dois tipos de subprogramas: Funções e Subrotinas Uma Função, quando chamada, retorna um único valor calculado
Correção do 1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de 2006, 2º Semestre
Correção do º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 3 de Junho de 26, 2º Semestre. (2.) Perguntas de resposta rápida de Fortran (.4 valores cada).. Todos os componentes
Programação estruturada no Fortran 90-2
Programação estruturada no Fortran 90-2 Departamento de Física UFPel Faça um programa em Fortran 90 que calcule o valor do cos-seno de x através da série abaixo, co-seno(x) = 1 x2 2! + x4 4! x6 6! + x8
1. O número de bactérias numa cultura pode ser estimado pela expressão:
Funções 1. O número de bactérias numa cultura pode ser estimado pela expressão: N e kt sendo N a população inicial, k a taxa de crescimento e t o tempo de evolução. Escreva uma função para calcular o número
Programação de Computadores III
Programação de Computadores III Introdução ao FORTRAN Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157
Apostila de Fortran. É uma pseudo-linguagem a qual oferece recursos para que o programador possa codificar e testar os seus algoritmos.
Apostila de Fortran Fortran Uma das linguagens de programação mais velhas, o FORTRAN foi desenvolvido por uma equipe de programadores conduzida por John Backus na IBM, e foi primeiramente publicada em
PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95
PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:
Programação de Computadores III
Programação de Computadores III Introdução ao FORTRAN Professor Hugo de Oliveira Barbalho [email protected] Material produzido pelo professor: Leandro Augusto Frata Fernandes ([email protected])
Linguagens de Programação Aula 11
Linguagens de Programação Aula 11 Celso Olivete Júnior [email protected] Na aula passada Uma definição de subprograma descreve as ações representadas pelo subprograma Subprogramas podem ser funções
Programação de Computadores:
Instituto de C Programação de Computadores: Introdução ao FORTRAN Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Introdução ao FORTRAN Cinco aspectos
Introdução ao Fortran 90-1
Introdução ao Fortran 90-1 Departamento de Física UFPel Definição de Programa em Fortran 90 Programa ou Código-fonte Programa ou código-fonte é um conjunto de instruções, também chamadas de comandos, escritas
1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de º Semestre
º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica de Junho de 6 º Semestre Exame sem consulta : 6: h Nome: Número: Escreva o seu número e nome em todas as folhas de exame. O exame
Introdução à Programação em C
Introdução à Programação em C Tipos e Operadores Elementares Estruturas de Controlo Resumo Novidades em C Exemplo: Factorial Tipos de Dados Básicos Saltos Condicionais: if-then-else Valor de retorno de
Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02
1 Objetivos da lista Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02 Esta lista de exercícios tem como objetivo introduzir funções na linguagem C. Como
Processamento da Informação Teoria Funções
Processamento da Informação Teoria Funções Semana 01 Prof. Jesús P. Mena-Chalco 27/04/2013 Funções No contexto de linguagens de programação, uma função é uma sequência de instruções utilizada para realizar
Introdução ao Fortran 90-1
Introdução ao Fortran 90-1 Departamento de Física UFPel Definição de Programa em Fortran 90 Programa ou Código-fonte Programa ou código-fonte é um conjunto de instruções, também chamadas de comandos, escritas
IntCinco = 5 IntOito = 8
1. Enuncie as várias partes de um programa em FORTRAN. 2. Identifique os tipos básicos de dados em FORTRAN. 3. Escreva a declaração de tipo para as variáveis: 3.1. NumeroAluno do tipo inteiro 3.2. NomeProprio,
Programação de Computadores:
Instituto de C Programação de Computadores: Introdução a Linguagens de Programação Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Seis Camadas Problema
Funções em Matlab. Subprogramas em Matlab são funções.
MATLAB Funções Funções em Matlab Subprogramas em Matlab são funções. function [saida1, saida2,...] = nome_funcao(ent1, ent2,...) % Comentário numa linha que diz o que faz a função % Mais comentários %
Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada
Introdução à Programação na linguagem F. Jaime Ramos, Amílcar Sernadas e Paulo Mateus
Introdução à Programação na linguagem F Jaime Ramos, Amílcar Sernadas e Paulo Mateus DMIST, Setembro de 2005 Capítulo 1 Introdução à linguagem F Objectivos Introdução à linguagem F. Edição e compilação
Ambiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
26 FEUP Licenciatura em Eng. Civil Programação e Computadores. 1+x(6*rand(1,10))
26 FEUP Licenciatura em Eng. Civil Programação e Computadores 7 Funções 7.1 A função rand é intrínseca em Matlab. Esta função pode ser usada para obter um número pseudo-aleatório no intervalo [0, 1). A
1 - Ambiente de desenvolvimento
Neste documento começa-se por apresentar o ambiente de desenvolvimento integrado do Visual Basic (menu bar, toolbars, toolbox, project explorer window, properties window, form designer e code editor window).
Programação de Computadores II
Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para
Linguagem Haskell. Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação. Tiago Carneiro 19 Agosto 2013
Linguagem Haskell Universidade Estadual Santa Cruz Conceitos de Linguagens de Programação Tiago Carneiro 19 Agosto 2013 1 1 Linguagem Haskell Linguagem de programação funcional É um paradigma de programação
Programação Introdução
PROGRAMAÇÃO Programação Introdução Prof. Dr. Adriano Mauro Cansian 1 Introdução Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas,
CFAC: Visual Basic: III - Procedimentos
Visual Basic III Procedimentos CFAC Concepção e Fabrico Assistidos por Computador João Manuel R. S. Tavares Sumário 1) Criar Subrotinas em Visual Basic; 2) Criar Funções; 3) Mecanismo de passagem de parâmetros;
Introdução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
Módulo 7. Funções. Algoritmos e Estruturas de Dados I C++ (Rone Ilídio)
Módulo 7 Funções Algoritmos e Estruturas de Dados I C++ (Rone Ilídio) Funções Conjunto de instruções acessadas através de um nome Implementadas uma única vez e executadas quantas necessárias Importantes
Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados
Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius
Linguagem Haskell. Riocemar S. de Santana
Linguagem Haskell Riocemar S. de Santana Haskell, o que é? É uma linguagem de programação puramente funcional, de propósito geral. Nomeada em homenagem ao matemático americano Haskell B. Curry (1900 1982).
Algoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes [email protected] 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
Introdução à Computação
Universidade Federal do Maranhão Curso de Química Departamento de Informática Introdução à Computação Linguagem Fortran Profa. Msc. Maria Auxiliadora Freire [email protected] 1 Lógica de Programação
Estrutura de Dados Básica
Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 2: Revisão dos itens básicos O objetivo desta aula é revisar os conceitos envolvidos na abordagem da Programação Estruturada. Representações
ALGORITMOS I. Procedimentos e Funções
Procedimentos e Funções Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 1 MÓDULOS São blocos de instruções que realizam tarefas específicas. Carregado uma vez e pode ser executado quantas vezes
2.2.5 EXPRESSÕES - Regras para o cálculo de valores
Métodos de Programação I Departamento de Matemática, FCTUC 30 2.2.5 EXPRESSÕES - Regras para o cálculo de valores As expressões fornecidas ao computador, quer tenham variáveis, constantes ou apenas literais,
Linguagem Pascal. Prof. Antonio Almeida de Barros Junior
Linguagem Pascal Prof. Antonio Almeida de Barros Junior 1 Linguagem Pascal Criada para ser uma ferramenta educacional (Década de 70); Prof. Niklaus Wirth (Universidade de Zurique); Blaise Pascal (Matemático
Linguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Métodos de Programação I Ana Maria de Almeida
Métodos de Programação I 2. 13 type naipe = ( ouros, copas, paus, espadas ); var trunfo : naipe; Claro que são apenas identificadores e não existirá a mesma escolha de operadores e funções sobre eles que
Linguagem de Programação I. Aula 10 Funções
Linguagem de Programação I Aula 10 Funções Da Aula Anterior Tipos de dados básicos e operadores em C Declaração de variáveis e modificadores de tipo Estruturas de Controle Arrays unidimensionais Geração
Linguagem de programação: Pascal
Aula 04 Linguagem de programação: Pascal Prof. Tecgº Flávio Murilo 26/03/2013 1 Pascal Introdução Pascal é uma linguagem de programação estruturada, criada em 1970 pelo suíço Niklaus Wirth, dando este
Modularidade. Objetivos: Introduzir noções básicas de modularidade. Funções e procedimentos
Modularidade Objetivos: Introduzir noções básicas de modularidade Funções e procedimentos Motivação É muito difícil manter um código quando ele tende a ser grande (com muitas linhas) É preciso organizar
Aula 07 Introdução à Programação Subprogramas
Aula 07 Introdução à Programação Subprogramas Prof. Gustavo Callou [email protected] [email protected] Roteiro SubProgramas Procedimentos Funções Exercícios Gustavo Callou DEINFO/UFRPE 2 Sistema
Aulas Anteriores. Detalhes da linguagem de programação
Aulas Anteriores Detalhes da linguagem de programação Elementos básicos (identificadores, constantes, símbolos gráficos) Estrutura básica de um programa (cabeçalho, parte declarativa, parte de execução)
Introdução à Linguagem C Variáveis e Expressões
INF1005: Programação 1 Introdução à Linguagem C Variáveis e Expressões 08/03/10 (c) Paula Rodrigues 1 Tópicos Principais Programando em C Funções Variáveis Define Operadores e Expressões Entrada e Saída
Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.
Fundamentos de Programação Turma CI-240-EST Josiney de Souza [email protected] Agenda do Dia Aula 5 (18/09/15) Resolução de alguns problemas Aula anterior: soma-produto-media, amd2dias, segundos2hms
Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio
Introdução à programação em PASCAL. Aula de 22/10/2001. Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores
Introdução à programação em PASCAL Aula de 22/10/2001 Nota: Conjunto de slides baseados nas transparências utilizadas em PEDA em anos anteriores Conteúdo Conceito de linguagem de programação O processo
Introdução ao fortran 90 - Aula 1
Introdução ao fortran 90 - Aula 1 Departamento de Física UFPel 1954-1957: The IBM Mathematical Formula Translating System John W. Backus da IBM: Fortran I: alternativa à linguagem assembler para a programação
Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática
Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.
Linguagem Pascal. Prof. Sérgio Rodrigues. É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa;
Linguagem Pascal Prof. Sérgio Rodrigues Introdução Algoritmo É a descrição, de forma lógica, dos passos a serem executados no cumprimento de determinada tarefa; Programa é a formalização de um algoritmo
Aula Prática 2. Paradigmas da Programação I / Programação Funcional
Aula Prática 2 Paradigmas da Programação I / Programação Funcional ESI/MCC 1 o ano (2005/2006) Nesta aula pretende-se introduzir os conceitos seguintes: valores e expressões; tipos básicos e tipos compostos;
Introdução à Programação em C (I)
Introdução à Programação em C (I) IAED Tagus, 2009/2010 Organização de Ficheiros em C Organização Típica de Ficheiros em C Inclusão de bibliotecas de sistema Inclusão de bibliotecas locais Definição de
Linguagens de Programação Aula 13
Linguagens de Programação Aula 13 Celso Olivete Júnior [email protected] Na aula passada Suporte para a programação orientada a objetos 2 Na aula de hoje Programação Funcional Linguagem Haskell 3 Roteiro
Introdução ao Fortran 90. Aula 3
Introdução ao Fortran 90 Aula 3 Usando vetores e matrizes Definição Uma matriz ou vetor consiste de um conjunto retangular de elementos, todos do mesmo tipo e espécie do tipo. Uma matriz ou vetor é um
APROG. Civil. Programas Básicos. ISEP DEI, Angelo Martins 2006 ISEP DEI, António Silva Programas Básicos
Conteúdo Exemplo de um programa Apresentação sumária da construção de um programa em VB. Objectos e o mecanismo de eventos Apresentação dos conceitos básicos de programação em ambiente MS Windows. Tipos
2 Programação de Simulink S-functions
2 Programação de Simulink S-functions 2.1 S-function É uma descrição de um bloco do simulink numa linguagem de programação, que pode ser codificada em Matlab, C / C++, Fortran ou Ada. u Fig. 2-1: (S-function
Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
