GEO764 - Programação avançada em Geofísica. Entrada e saída no Fortran 90. Comando OPEN. Comando OPEN: exemplo

Tamanho: px
Começar a partir da página:

Download "GEO764 - Programação avançada em Geofísica. Entrada e saída no Fortran 90. Comando OPEN. Comando OPEN: exemplo"

Transcrição

1 GEO764 - Programação avançada em Geofísica FORTRAN 90: Aula no 9 Miscelânea Entrada e saída no Fortran 90 É extenso em assuntos relativos a E/S. Permite um grande número de arquivos conectados a um programa, tanto para leitura como escrita. Um arquivo é conectado por meio de uma unidade lógica, denotado por um número. Cada unidade tem diversas propriedades: nome: nome do arquivo conectado ação: se para leitura, escrita, leitura e escrita, etc. estado: existente, novo, substituir, etc. método de acesso: seqüencial, direto. 2 mar-07 Hédison K. Sato Comando OPEN 3 Comando OPEN: exemplo 4 A sintaxe é: OPEN([UNIT=]<inteiro>, FILE=<filename>, & ERR=<label>, STATUS=<status>, ACCESS=<method>,& ACTION=<mode>,RECL=<int-expr>) onde <filename> é uma cadeia de caracteres, <status> é OLD, NEW, REPLACE, SCRATCH, ou UNKNOWN <method> é DIRECT ou SEQUENTIAL <mode> é READ, WRITE ou READWRITE se o acesso é direto, <int-expr> precisa ser dado. OPEN(17, FILE= output.dat, ERR=10, & STATUS= REPLACE, ACCESS= SEQUENTIAL,& ACTION= WRITE ) OPEN(14, FILE= input.dat, ERR=10, & STATUS= OLD, ACCESS= DIRECT,& ACTION= READ,RECL=nlength)

2 5 6 Comando READ Comando READ Nem todas especificações podem ser simultâneas. READ([UNIT=]<inteiro>, [FMT=]<format>, & IOSTAT=<int-variable>, ERR=<label>, & END=<label>, EOR=<label>, & ADVANCE=<advance-mode>, REC=<int-expr>, & SIZE=<num-chars>) <input-list> onde <unit> é um número ou *, <format> é uma cadeia de caracteres ou o rótulo de um FORMAT, <int-variable> armazena um código de retorno, zero significa sem erro, <label> rótulo de um comando executável, <advance-mode> é YES ou NO <num-chars> é o número de caracteres lido, <int-expr> é o número do registro (p/ acesso direto) Exemplo: READ(14,FMT= (3(F10.7,1X)),REC=iexp) a,b,c READ(*, (A),ADVANCE= NO,EOR=12,SIZE=nch) str 7 8 Comando WRITE Comando WRITE Nem todas especificações podem ser simultâneas. WRITE([UNIT=]<inteiro>, [FMT=]<format>, & IOSTAT=<int-variable>, ERR=<label>, & ADVANCE=<advance-mode>, REC=<int-expr>) & <output-list> onde <unit> é um número ou *, <format> é uma cadeia de caracteres ou o rótulo de um FORMAT, <int-variable> armazena um código de retorno, zero significa sem erro, <label> rótulo de um comando executável, <advance-mode> é YES ou NO <int-expr> é o número do registro (p/ acesso direto) Exemplo: WRITE(17,FMT= (I4),IOSTAT=istat,ERR=10) IVAL WRITE(*, (A),ADVANCE= NO ) Yello

3 Comando FORMAT especificação FMT 9 Descritores de edição 10 FMT= pode especificar tanto o número da linha do comando FORMAT, uma expressão tipo caracter ou um * (asterisco). O Fortran 90 tem uma rica sintaxe para formatação. Aqui serão vistos alguns deles. WRITE(17, FMT= (2X,2I4,1X, NOME,A7) ) I,J,STR READ(14,*) x,y WRITE(*,FMT=10) a,b 10 FORMAT( vals, 2(F15.6,2x)) o dado é formatado por meio de descritores de edição. No exemplo, o seguinte é escrito NOME Philip vals Sumário: Iw w caracteres de dado inteiro Fw.dw caracteres de dado real. (d número de decimais) Ew.dw caracteres de dado real. (d número de decimais) Lw w caracteres de dado lógico A[w ] w caracteres de dado caracter nx pula n caracteres (n espaços) Por exemplo: WRITE(*,FMT= (2X,2(I4,1X), name,& A4,F13.5,1X,E13.5) ) & 77778,3, ABCDEFGHI,14.45, imprime **** 3 name ABCD E Outros comandos de E/S Procedimentos externos CLOSE - desfaz a conexão da unidade do número especificado no comando. REWIND - reposiciona o apontador no início do arquivo. BACKSPACE - o apontador é reposicionado um registro em direção ao início do arquivo. ENDFILE - força a gravação de um end-of-file. Esses comandos têm outros especificações tais como o IOSTAT REWIND(14) BACKSPACE(UNIT=14) ENDFILE(17) CLOSE(UNIT=17,IOSTAT=ival) O Fortran 90 admite o procedimento externo (similar ao velho estilo de programação do Fortran 77). Evidentemente, este procedimento não faz parte de um programa ou módulo, devendo ser denotado como sendo um procedimento externo (EXTERNAL). Assim: eles podem ser compilados separadamente, podem necessitar uma interface explícita para ser fornecida ao programa usuário, podem ser utilizados como argumentos (somando-se aos intrínsecos), devem conter o especificador IMPLICIT NONE.

4 Sintaxe de subrotina externa não recursiva 13 Subrotina externa: exemplo 14 SUBROUTINE Ext_1()! CONTAINS! Procedimentos internos SUBROUTINE Int_1()! comandos executáveis END SUBROUTINE Int_1 FUNCTION Int_n()! comandos executáveis END FUNCTION Int_n END SUBROUTINE Ext_1 SUBROUTINE Ext_2()! etc END SUBROUTINE Ext_2 Um procedimento externo pode chamar um outro procedimento externo. SUBROUTINE sub1(a,b,c) IMPLICIT NONE EXTERNAL sum_sq! declara ou use INTERFACE REAL :: a,b,c ; CALL sum_sq(a,b,c,s); END SUBROUTINE sub1 chama SUBROUTINE sum_sq(aa,bb,cc,ss) REAL, INTENT(IN) :: aa,bb,cc REAL, INTENT(OUT):: ss ss = aa*aa + bb*bb + cc*cc END SUBROUTINE sum_sq Sintaxe de uma função não recursiva 15 Sintaxe de uma função não recursiva 16 Primeiro modelo: [<prefixo>] FUNCTION <nome-proc>([<arg-mudos>]) <declaração dos argumentos mudos> <declaração dos objetos locais> <comandos executáveis, atribuição do resultado> [CONTAINS <definições internas ao procedimento>] END [FUNCTION [<nome-proc>]] O <prefixo> especifica o tipo do resultado. Segundo modelo: FUNCTION <nome-proc>([<arg-mudos>]) <declaração dos argumentos mudos> <declaração do tipo do resultado> <declaração dos objetos locais> <comandos executáveis, atribuição do resultado> [CONTAINS <definições internas ao procedimento>] END [FUNCTION [<nome-proc>]] O <nome-proc> precisa ser declarado.

5 17 18 Exemplo de função externa Interfaces de procedimentos A função é ativada pela sua presença na expressão, no local em que o resultado é exigido. total = total + maior(a, b, c) As funções externas devem ser declaradas como EXTERNAL, senão a INTERFACE deve ser fornecida. INTEGER, EXTERNAL:: largest A função é descrita como INTEGER FUNCTION & maior(i,j,k) IMPLICIT NONE; INTEGER, & INTENT(IN):: i,j,k maior = max(i, j, k) END FUNCTION maior FUNCTION maior(i,j,k) IMPLICIT NONE; INTEGER, & INTENT(IN):: i,j,k INTEGER:: maior maior = max(i, j, k) END FUNCTION maior É possível prover uma interface explícita para um procedimento externo. Assim, considerando a seguinte subrotina, SUBROUTINE expsum(n,k,x,sum)! interface USE KIND_VALS: ONLY long IMPLICIT NONE INTEGER, INTENT(IN):: n! interface REAL(long), INTENT(IN) :: k,x! interface REAL(long), INTENT(OUT):: sum! interface REAL(long), SAVE:: cool_time END SUBROUTINE expsum! interface Interfaces de procedimentos (cont.) 19 O quê aparece na interface? 20 A interface propriamente dita é formada com os comandos que aparecem no intervalo contendo as declarações INTERFACE! p/ procedimentos externos SUBROUTINE expsum(n,k,x,sum)! interface USE KIND_VALS: ONLY long INTEGER, INTENT(IN):: n! interface REAL(long), INTENT(IN) :: k,x! interface REAL(long), INTENT(OUT):: sum! interface END SUBROUTINE expsum! interface END INTERFACE As interfaces substituem qualquer comando EXTERNAL e são desnecessários para os procedimentos internos. Uma interface contém somente: o cabeçalho SUBROUTINE ou FUNCTION o tipo da função (se não estiver definido no cabeçalho), declaração dos argumentos mudos, incluindo os atributos. o comando END SUBROUTINE ou END FUNCTION As interfaces somente são necessárias para procedimentos externos e eliminam a necessidade de qualquer outra forma de declaração para os procedimentos em questão.

6 21 22 Exemplo de interface Interfaces obrigatórias O programa inclui uma interface explícita PROGRAM exemplo_de_interface IMPLICIT NONE INTERFACE SUBROUTINE expsum(n,k,x,sum) INTEGER, INTENT(IN):: n REAL, INTENT(IN) :: k,x REAL, INTENT(OUT):: sum END SUBROUTINE expsum END INTERFACE REAL:: sum ; CALL expnum( 10,0.5,0.1,sum); END PROGRAM exemplo_de_interface As interfaces explícitas permite compilações separadas, otimizações e verificação dos tipos. Interfaces explícitas são obrigatórias se o procedimento externo tiver argumentos mudos que sejam conjuntos de forma a determinar, apontadores ou alvos, argumentos opcionais, conjuntos ou apontador como resultado (função), um resultado que tem uma especificação de comprimento LEN=* herdada (funções caracter). e quando a referência: tem uma palavra-chave como argumento, é uma atribuição definida, é uma chamada para um nome genérico, é uma chamada para um operador definido (função) Procedimentos como argumentos 23 Exemplos de procedimentos como argumentos 24 Os procedimentos externos usados como argumentos precisam ser declarados no local da chamada (CALL) como INTRINSIC: para os procedimentos internamente construídos. INTRINSIC MVBITS ; REAL, INTRINSIC:: ASIN EXTERNAL: para os procedimentos externos ou mudos EXTERNAL my_subby ; INTEGER, EXTERNAL:: my_fun Se o nome de um procedimento interno é usado em um comando EXTERNAL, então somente o procedimento externo homônimo é visível no escopo; o procedimento intrínseco fica indisponível. Nos dois casos, o procedimento específico, não o genérico, pode ser usado como argumento efetivo. Procedimentos internos não podem aparecer como argumentos. PROGRAM main IMPLICIT NONE INTRINSIC ASIN REAL, EXTERNAL:: my_sin EXTERNAL diffo1 CALL subby(asin,my_sin,diffo1,sin(0.5)) END PROGRAM main SUBROUTINE subby(fun1,fun2,sub1,x) IMPLICIT NONE REAL, INTENT(IN):: x REAL, EXTERNAL:: fun1, fun2; EXTERNAL sub1 PRINT *, fun1(x), fun2(x) CALL sub1(fun2(x),fun1,x) END SUBROUTINE subby

7 Exemplos de procedimentos como argumentos (cont.) 25 Comando DATA 26 SUBROUTINE diffo1(y,f,x) IMPLICIT NONE ; REAL, INTENT(IN):: x, y REAL, EXTERNAL:: f PRINT *, Diffo1 =, y - f(x) END SUBROUTINE diffo1 REAL FUNCTION my_sin(x) END FUNCTION my_sin O comando DATA é bom para iniciar seções de conjuntos de forma irregular, complicada. DATA <lista-var-1>/<lista-1-dados>/, & <lista-var-n>/<lista-n-dados>/ O número de constantes em cada <lista-dados> precisa ser igual ao número de variáveis e elementos de conjuntos da <lista-var> correspondente. Qualquer objeto iniciado por um comando DATA tem o atributo SAVE. Exemplo de comando DATA 27 Comando DATA laço DO implícito 28 Como exemplo, considere iniciar um conjunto com todos os valores das extremidades iguais a um e o restante, nulo. Este não é um caso simples a ser feito com outro comando, como é com o DATA: REAL:: matriz(100,100) DATA matriz(1, 1:100)/100*1.0/ DATA matriz(100,1:100)/100*1.0/ DATA matriz(2:99, 1)/98*1.0/ DATA matriz(2:99, 100)/98*1.0/ DATA matriz(2:99,2:99)/9604*0.0/ A expressão 100*1.0 significa 100 ocorrências de 1.0, o * é a especificação de repetição. Neste contexto, não deve ser confundido com a multiplicação. No comando DATA, a <lista-var> pode ser especificada por meio de um laço DO implícito. Iniciar um matriz com uma constante ao longo da diagonal e zero nos demais elementos é simples usando este método. A seção é especificada por um laço genioso que é mais expressivo do que a sintaxe de conjunto permitem. REAL:: diag(100,100) DATA (diag(i,i),i=1,100) / 100* 1.0/ DATA ((diag(i,j),diag(j,i), j=i+1,100),i=1,100)& /9900*0.0/

8 29 30 Comando GO TO Comando GOTO: exemplo É poderoso mas permite desvios indisciplinados. Pode ser usado para criar desvios para quase todos os locais de uma unidade de programa. Pode ser perigoso. Pode resultar códigos sem estrutura. Pode ser bastante útil. A sintaxe básica é: GOTO <rótulo-numérico> O rótulo precisa existir e estar no mesmo escopo junto a um comando executável. Considere o seguinte exemplo de uso atroz do GOTO GOTO 10! pulo p/ frente 23 CONTINUE i = i-1 IF(I.EQ.0) GOTO PRINT*, Linha j = j-1! loop IF(j.NE.0) GOTO 69 GOTO 23! desvio para trás 99 CONTINUE Este trecho de código mostra pulos p/ frente, p/ trás e a simulação de um laço DO. O melhor uso do GOTO é sair de uma estrutura muito embutida, em situações críticas. RETURN e STOP 31 Fortran 95 FORALL 32 Usar para tratar situações de exceção em procedimento. SUBROUTINE sub(ierror) INTEGER, INTENT(OUT):: ierror ALLOCATE(a(100),STAT=ierror) IF(ierror>0) THEN PRINT*, Falha na alocação RETURN END IF END SUBROUTINE STOP poderia ter sido usado em lugar do RETURN: STOP sub: falha na alocação A mensagem é opcional. Pode ser uma constante inteira com até 5 dígitos. Comando e estrutura FORALL FORALL (i=1:100,j=2:100) e(i,j)=b(i,j)+f(i,j) FORALL (i=1:100:3,j=2:100:2,a(i,j)>0) b(i,j)=c(i,j)+d(i,j) e(i,j)=b(i,j)+f(i,j) END FORALL Na estrutura FORALL, além de atribuições, podem ser usados os comandos e estruturas WHERE e FORALL Cada comando é executado por completo, em paralelo, antes do seguinte.

9 Fortran 95 FORALL (cont.) 33 EFEITO COLATERAL PROIBIDO 34 O FORALL dispõe uma alternativa eficiente para a construção elemento a elemento de um conjunto. Permite explicitar elementos de conjuntos, seções, subcadeias, ou alvos apontados com função dos subscritos dos elementos. FORALL (<lista-de-triplas>[,<máscara-escalar>]) onde cada tripla é índice=subscrito:subscrito[:passo] O comando considera, como no caso do WHERE, que as operações cálculo e atribuição são executadas em qualquer ordem sempre com o mesmo resultado, o que quer dizer, em paralelo. Para facilitar a compilação otimizada, a regra padrão do Fortran proíbe dependências a certos efeitos colaterais. A regra especifica ser desnecessária a avaliação parcial ou total de todos operandos de uma expressão, se o valor da expressão puder ser determinada de outra forma. Ex.: x>y.or. fun(z)! x, y e z reais e fun uma função lógica A chamada da função é dispensável se x é maior que y. Desta forma, z é indeterminado se o seu valor é modificado por fun. Similarmente, é dispensável a avaliação de subscrito ou subcadeia de um conjunto de tamanho nulo ou objeto caracter de comprimento nulo EFEITO COLATERAL PROIBIDO 35 Fortran 95 PURE 36 A chamada a uma função não deve redefinir o valor de uma variável que aparece no mesmo comando ou afete o valor de outra função no mesmo comando. Ex.: d=max(dist(p,q), dist(q,r)) Com relação a esta regra, o comando if, if (expressão lógica) comando é tratado como equivalente a if (expressão lógica) then comando endif O mesmo se aplica para o comando where Esta regra permite que quaisquer expressões, argumentos de um único procedimento, sejam avaliadas em qualquer ordem. A palavra PURE, adicionada aos comandos function e subroutine, assegura que o procedimento não tem efeitos colaterais, ou seja, ficam assegurados que Não altera qualquer dos argumentos mudos Não altera qualquer parte de uma variável do hospedeiro ou associação Não contém variável local com o atributo save Não realiza operação com um arquivo externo Não contém o comando stop Ex.: pure function dist(p,q) Para maiores detalhes, consulte Metcalf e Reid (2000)

10 Fortran 95 ELEMENTAL 37 Fortran 95 ELEMENTAL 38 Denomina-se elemental os operadores e funções intrínsecas capazes de serem aplicados a escalares e conjuntos. Ex.: c=a+b; c=sin(a) onde a, b e c podem ser conjuntos similares Estende esta característica para os procedimentos não intrínsecos. Ex.: type estat real :: media, var end type estat elemental function soma(a,b) type (estat) :: soma type (estat), intent(in):: a, b soma%media=a%media+b%media soma%var=a%var+b%var end function soma No exemplo anterior, a função tem dois argumentos. Assim, ela é capaz de operar sobre dados com as seguintes combinações de ordem: 0-0, 0-1, 1-0, 1-1, 0-2, 2-0, 2-2,, 0-7, 7-0, combinações! Se restrito ao Fortran90, teriam que ser escritas 22 versões. A função elementar tem o atributo pure também. Não é permitido uma função elementar ter o caráter recursivo. Para maiores detalhes, consulte Metcalf e Reid (2000) Fortran 95 Miscelânea 39 Fortran 95 Miscelânea 40 O Fortran 95 possui uma função intrínseca NULL para atribuir valor inicial nulo aos apontadores, em lugar do indefinido. Também tem mecanismos para atribuir valores iniciais aos componentes dos tipos derivados. O Fortran 95 permite o uso das funções definidas pelo usuário nas expressões de especificação, desde que sejam PURE. Uso da <especificação> no comando END INTERFACE END INTERFACE <especifição> Características removidas em relação às versões anteriores: Comandos ASSIGN e GOTO atribuídos Comando PAUSE Variáveis de controle do tipo real no comando DO Descritor de edição H (para especificação de formato) Desvio para o ENDIF, de fora do bloco IF

11 FIM 41 Referências Metcalf, M. e Reid, John, 2000, Fortran 90/95 explained, Oxford Univ. Press. Fazer os exercícios.

Introdução ao Fortran 90-7

Introdução ao Fortran 90-7 Introdução ao Fortran 90-7 Departamento de Física UFPel O Fortran 90 permite que a entrada (E) e a saída (S) de dados seja feita a partir de um (ou vários) arquivo externo ao programa. Para o acesso E/S

Leia mais

Programação estruturada no Fortran 90-3

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

Leia mais

Introdução ao Fortran 90. Aula 3

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

Leia mais

Capítulo 8. Estruturas de Controle no Nível de Sentença

Capítulo 8. Estruturas de Controle no Nível de Sentença Capítulo 8 Estruturas de Controle no Nível de Sentença Níveis de fluxo de controle Computações são realizadas por meio da avaliação de expressões e da atribuição dos valores a variáveis Para tornar a computação

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

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:

Leia mais

Introdução ao Fortran 90-1

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

Leia mais

Programação Orientada a Objetos. Manipulação de Exceções

Programação Orientada a Objetos. Manipulação de Exceções Programação Orientada a Objetos Manipulação de Exceções Cristiano Lehrer, M.Sc. Introdução à Manipulação de Exceções (1/2) Em uma linguagem sem manipulação de exceção: Quando ocorre uma exceção, o controle

Leia mais

Programação estruturada no Fortran 90-2

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

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Celso Olivete Júnior [email protected] Na aula passada Expressões Precedência e associatividade de operador Sobrecarga de operador Expressões de modo misto Várias formas de

Leia mais

Programação de Computadores II

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

Leia mais

Linguagem de programação: Pascal

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

Leia mais

PROGRAMAÇÃO DE COMPUTADORES

PROGRAMAÇÃO DE COMPUTADORES PROGRAMAÇÃO DE COMPUTADORES COMANDOS E FORMATOS DE ENTRADA E SAÍDA 1 COMANDOS E FORMATOS DE ENTRADA E SAÍDA Os comandos de entrada e saída, na sua forma mais simplificada, possuem a seguinte estrutura:

Leia mais

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 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

Leia mais

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por

Leia mais

Tipos Abstratos de Dados. Estrutura de Dados

Tipos Abstratos de Dados. Estrutura de Dados Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

INSTRUÇÕES DE REPETIÇÃO

INSTRUÇÕES DE REPETIÇÃO Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 6 INSTRUÇÕES DE REPETIÇÃO As instruções de repetição permitem fazer com que a execução de uma

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é

Leia mais

Introdução à Ciência da Computação

Introdução à Ciência da Computação Introdução à Ciência da Computação Variáveis Conceitos Básicos Variáveis x Constantes a = x + 5 a, x e 5 são variáveis ou constantes? Variáveis As variáveis são recipientes de valores É um espaço reservado

Leia mais

Introdução ao fortran 90 - Aula 1

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

Leia mais

Introdução ao Fortran 90-1

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

Leia mais

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior ALGORITMOS E APLICAÇÕES FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior Formato Básico do Pseudocódigo Tipos de dados O VisuAlg prevê quatro tipos de dados: inteiro, real,

Leia mais

Programação I A Linguagem C. Prof. Carlos Alberto

Programação I A Linguagem C. Prof. Carlos Alberto Programação I A Linguagem C Prof. Carlos Alberto [email protected] [email protected] 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

Leia mais

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string

Pascal. -Cabeçalho do programa. - label - const - type - var - procedure - function. - integer - real - byte - boolean - char - string Pascal -Cabeçalho do programa Áreas do programa -Área de declarações -Corpo do programa - label - const - type - var - procedure - function - integer - real - byte - boolean - char - string Program

Leia mais

Programação de Computadores III

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

Leia mais

Programação em FORTRAN V. João Manuel R. S. Tavares

Programação em FORTRAN V. João Manuel R. S. Tavares Programação em FORTRAN V João Manuel R. S. Tavares Output no écran Exemplo de escrita em formato livre (*): radius = 7.2345121 PRINT *,'Radius = ',radius,' cm' Resultado: Radius = 7.2345121 cm @2001 -

Leia mais

Algoritmos e Programação

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

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.4. Estruturas de Controle 3.4.1. Comandos

Leia mais

Apostila de Fortran. É uma pseudo-linguagem a qual oferece recursos para que o programador possa codificar e testar os seus algoritmos.

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

Leia mais

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

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

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Variáveis e Entrada de Dados Marco André Lopes Mendes  marcoandre.googlepages. Variáveis e Entrada de Dados Marco André Lopes Mendes [email protected] [email protected] marcoandre.googlepages.com Algoritmos é a base Primeiro programa Este programa possui apenas uma

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros

Leia mais

Programação de Computadores III

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])

Leia mais

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços

Leia mais

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. É 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

Leia mais

Python: Exceções, Iteradores e Geradores. Claudio Esperança

Python: Exceções, Iteradores e Geradores. Claudio Esperança Python: Exceções, Iteradores e Geradores Claudio Esperança Exceções Quando um programa encontra dificuldades não previstas, diz se que uma condição excepcional ou uma exceção ocorreu Um erro é uma exceção

Leia mais

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias SCC 124 - Introdução à Programação para Engenharias Comandos Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes 1 Aula de

Leia mais

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc.

O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO. Prof. Angelo Augusto Frozza, M.Sc. O AMBIENTE DE PROGRAMAÇÃO VISUAL -PLANO DE ENSINO Prof. Angelo Augusto Frozza, M.Sc. ROTEIRO 1. A linguagem de programação Object Pascal a) Palavras reservadas b) Tipos de dados, variáveis e constantes

Leia mais

Introdução à Computação - FORTRAN

Introdução à Computação - FORTRAN Universidade Federal do Maranhão Departamento de Informática Notas de Aula arlos Eduardo Portela Serra de astro 1 Ficha 12 FORTRAN FORMULA TRANSLATION Linguagem algébrica, cujas regras e estruturas são

Leia mais

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 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

Leia mais

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes

Fundamentos de Programação. Linguagem C++ aula II - Variáveis e constantes. Prof.: Bruno Gomes Fundamentos de Programação Linguagem C++ aula II - Variáveis e constantes Prof.: Bruno Gomes 1 Variáveis Representa uma porção da memória que pode ser utilizada pelo programa para armazenar informações

Leia mais

CAP. VI ANÁLISE SEMÂNTICA

CAP. VI ANÁLISE SEMÂNTICA CAP. VI ANÁLISE SEMÂNTICA VI.1 Introdução Semântica SIGNIFICADO, SENTIDO LÓGICO, COERÊNCIA,... Diferença entre SINTAXE e SEMÂNTICA Sintaxe : descreve as estruturas de uma linguagem; Semântica : descreve

Leia mais

4. Constantes. Constantes pré-definidas

4. Constantes. Constantes pré-definidas 4. Constantes Constantes pré-definidas O PHP possui algumas constantes pré-definidas, indicando a versão do PHP, o Sistema Operacional do servidor, o arquivo em execução, e diversas outras informações.

Leia mais

Nomes, vinculações e escopos

Nomes, vinculações e escopos Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Modularidade - Funções e Procedimentos

Modularidade - Funções e Procedimentos Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada

Leia mais

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de

Leia mais

Fundamentos Programação

Fundamentos Programação Fundamentos Programação A programação de computadores não é difícil. Realmente só requer algo como: Aprender alguns conceitos gerais Ser cuidadoso, organizado e lógico Praticar até aprender a dominar a

Leia mais

Modularidade - Fun ções e Procedimentos

Modularidade - Fun ções e Procedimentos Modularidade - Fun ções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situa ções, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de

Leia mais

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios. 3636363636363636363636363636363636363636363636363636 5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios. 5.1 - Comandos

Leia mais

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 );

#include <stdio.h> main() { int i; // Cabeçalho for (i = 1; i <=20; i++) putchar( * ); putchar( \n ); puts( Numeros entre 1 e 5 ); O todo é igual à soma das partes. Euclides. FUNÇÕES E PROCEDIMENTOS Embora sem saber, ao longo dos outros laboratórios, já foram utilizadas funções tais como printf, scanf, getchar, putchar, dentre outras

Leia mais

4. Estruturas Fundamentais de Programação em C

4. Estruturas Fundamentais de Programação em C 4. Estruturas Fundamentais de Programação em C 4.1. Imprimindo Mensagens e Valores no Monitor de Vídeo A biblioteca de entrada e saída (stdio.h) possui a função printf que imprime mensagens e valores diretamente

Leia mais

Ambiente de desenvolvimento

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

Leia mais

Nomes, vinculações e escopos

Nomes, vinculações e escopos Nomes, vinculações e escopos Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2 Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas Aula Tópico 2 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para o compilador

Leia mais

ESTRUTURAS DE CONTROLE

ESTRUTURAS DE CONTROLE ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO EM LINGUAGEM C 03/12/16 Repetição Contada Fluxograma Linguagem C I = C até F sim Comando não For (i=c; i

Leia mais

Introdução à Linguagem C

Introdução à Linguagem C Engenharia de CONTROLE e AUTOMAÇÃO Introdução à Linguagem C Aula 02 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria [email protected]

Leia mais

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double

Leia mais

Métodos de Programação I Ana Maria de Almeida

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

Leia mais