Introdução à Programação

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

Download "Introdução à Programação"

Transcrição

1 Instituto Superior Técnico Dep. de Engenharia Mecânica GCAR, Secção de Sistemas Introdução à Programação Notas de apoio à disciplina de Introdução à Programação 2001/2002 (Lic. Eng. Mecânica - 1º ano) João Miguel da Costa Sousa

2 Introdução João Miguel C. Sousa GCAR, DEM, IST 2

3 Informação geral! Bibliografia Nyhoff, L.R. and Leestma, S.C. Fortran90 for Engineers and Scientists. Prentice-Hall International, Inc Sousa, J.M.C. Acetatos das aulas teóricas! Avaliação de conhecimentos A nota final é dada pela seguinte formula : NF = 0.15 MT NP NE NF - Nota final MT - Mini-testes NP - Nota do projecto NE - Nota exame onde: NP, NE, NF 9.5! Página Web: João Miguel C. Sousa GCAR, DEM, IST 3

4 Programa 1. Introdução à computação 2. Introdução ao Fortran 3. Estruturas de controlo: selecção 4. Estruturas de controlo: repetição 5. Operações de entrada/saída 6. Subprogramas: funções 7. Subprogramas: subrotinas 8. Tipos de dados estruturados: tabelas 9. Tipos de dados estruturados: fichas 10. Tipos de dados dinâmicos: ponteiros João Miguel C. Sousa GCAR, DEM, IST 4

5 Introdução à Computação! Sistemas de computação mecanização de operações (procedimentos) armazenamento de programas e dados! Primeiros computadores Máquina Analítica, Charles Babbage, Ada Augusta (primeiro programador), Máq. de cartões perfurados, censo nos EUA, Herman Holleritm, fundador IBM, 1890.! Hardware: componentes físicos! Computadores electrónicos 1ª geração - Válvulas, ENIAC ª geração - Transistores IBM 70990, ª geração - Circuitos integrados IBM system/ ª geração - VLSI, chips de silicone. PCs, workstations e supercomputadores 5ª geração - Processamento paralelo João Miguel C. Sousa GCAR, DEM, IST 5

6 Máquinas de computação João Miguel C. Sousa GCAR, DEM, IST 6

7 Programas! Software - programas utilizados pelo computador! Sistema operativo - interface entre a máquina e o utilizador UNIX, AT&T s Bell Laboratories, 1971 MS-DOS, Microsoft, 1981 GUI - Apple Macintosh, Windows95! Linguagens de alto nível - Fortran, Pascal, BASIC, Lisp, C++, Java, etc.! Programa fonte - programa escrito em linguagem de alto nível! Programa objecto - tradução do programa de alto nível para linguagem máquina usando um compilador.! FORTRAN - FORmula TRANslator João Miguel C. Sousa GCAR, DEM, IST 7

8 Computador! Sistema composto por componentes com funções diferentes a trabalhar para um objectivo comum! Componentes principais CPU - Central Processing Unit! Unidade de controlo! ALU (Arithmetic and Logic Unit) Memórias - registos, RAM, ROM, memória virtual Memória externa - discos rígidos, disquettes Outros periféricos - Input/Output: terminais, monitores, scanners, impressoras, rato, etc. Input Devices CPU = Central Processing Unit Control Unit Arithmetic- Logic Unit Aplicações Output Devices Main Memory Sistema Operativo External Memory Drivers João Miguel C. Sousa GCAR, DEM, IST 8

9 Organização da memória! Sistema binário - 0,1 bits (binary digits)! byte - conjunto de 8 bits. Medida da memória em bytes. 1K = 2 10 =1024 bytes. 1 megabyte = 1024 K = bytes.! word - conjunto de bytes igual ao usado nos registos do CPU. 16, 32, 64 bits! address - endereço associado a cada word.! Memória guarda instruções dos programas a serem executadas! Linguagem assembly! Assembler - traduz assembly para código máquina. João Miguel C. Sousa GCAR, DEM, IST 9

10 Programa de computador! Conjunto de instruções a seguir para resolver um dado problema! Desenvolvimento de programas Análise do problema Projecto do algoritmo Codificação do programa Execução e testes " Exemplo: Um físico nuclear investiga o polónio. A radiactividade do polónio baixa para metade ao fim de 140 dias. Pretende-se saber a quantidade ao fim de 180 dias, sabendo que a inicial era de 10mg. 1 Análise do problema. Especificação precisa com entradas e saídas. Entradas (Input) Quantidade inicial: (10 mg) Meia-vida: (140dias) Período de tempo: (180 dias) Saídas (Output) Quantidade restante João Miguel C. Sousa GCAR, DEM, IST 10

11 Algoritmo 2 Projecto do algoritmo.! Algoritmo - Sequência finita de instruções bem definidas e não ambíguas, onde cada uma pode ser executada mecanicamente, com uma quantidade de esforço finito e num intervalo de tempo finito.! Tem duas partes: 1 Descrição dos objectos a manipular. " Exemplo! Variáveis escolhidas; QuantidadeInicial, MeiaVida, Tempo e QuantidadeRestante 2 Descrição das acções a executar nesses objectos. " Exemplo 1 Recebe valores das variáveis 2 Calcula o valor da QuantidadeRestante para o Tempo dado. 3 Retorna e mostra a QuantidadeRestante.! Refinamento do algoritmo ao detalhe necessário João Miguel C. Sousa GCAR, DEM, IST 11

12 Abstracção e abordagem topo-base! Abstracção - Descrição de uma dada entidade descrevendo apenas os aspectos relevantes para o objectivo, desprezando os pormenores.! Abstracção procedimental - Agrupa uma sequência de instruções e dá-lhes um dado nome (procedimento). Para executar o procedimento basta evocar o seu nome, sem considerar as acções que o constituem.! Abstracção de dados - Associada à utilização de objectos. Separa a forma de utilizar da constituição do próprio objecto. Um objecto pode ser decomposto em objectos mais simples. Ex: matriz, fichas.! Análise topo-base (top-down) - Consiste em dividir um problema complexo em sub-problemas mais simples. Estes sub-problemas têm um dado nome, e podem ser por sua vez divididos em sub-problemas mais simples até estes serem triviais e resolvidos facilmente. João Miguel C. Sousa GCAR, DEM, IST 12

13 Programa: Radioactividade Algoritmo para problema de radioactividade! Este algortimo calcula a radioactividade de uma substância após um dado tempo, dada a quantidade inicial e o tempo de metade da vida.! Entradas: Uma dada QuantidadeInicial da substância radioactiva, a sua MeiaVida, e o período de Tempo em dias.! Saída: QuantidadeRestante. 1 Recebe QuantidadeInicial, MeiaVida e Tempo. 2 Calcula QuantidadeRestante = QuantidadeInicial * (0.5) ** (Tempo / MeiaVida) 3 Retorna a QuantidadeRestante. João Miguel C. Sousa GCAR, DEM, IST 13

14 Programa: Radioactividade (2) 3 Codificação do programa PROGRAM Decaimento_Radioactivo! ! Este programa calcula a radioactividade de uma substancia! apos um dado tempo, dada a quantidade inicial e o tempo de! metade da vida radioactiva. Variaveis usadas:!! QuantidadeInicial : quantidade inicial da substancia (mg)! MeiaVida : tempo meia-vida da substancia (dias)! Tempo : tempo para o qual a quantidade! restante e calculada (dias)! QuantidadeRestante : quantidade da substancia restante(mg)!! Entradas: QuantidadeInicial, MeiaVida, Tempo! Saida: QuantidadeRestante! IMPLICIT NONE REAL :: QuantidadeInicial, MeiaVida, Tempo, QuantidadeRestante! Recebe valores para QuantidadeInicial, MeiaVida e Tempo. PRINT *, Escreva o valor inicial da substancia (mg), a sua PRINT *, meia-vida (dias) e o tempo para o qual se quer PRINT *, determinar a quantidade restante:" READ *, QuantidadeInicial, MeiaVida, Tempo! Calcula a quantidade restante para o tempo especificado. QuantidadeRestante = QuantidadeInicial * 0.5 ** (Tempo / MeiaVida)! Mostra a QuantidadeRestante. PRINT *, " QuantidadeRestante =", QuantidadeRestante, "mg END PROGRAM Decaimento_Radioactivo João Miguel C. Sousa GCAR, DEM, IST 14

15 Programa: Radioactividade (3)! Execução e testes - Verificar se o algoritmo e o programa estão correctos.! Fases de execução Inicializar o computador Editar o programa num editor de texto Compilar o programa - produz objecto. Link - Ligar o programa; produz executável Correr o programa! Exemplos: Escreva o valor inicial da substancia (mg), a sua meia-vida (dias) e o tempo para o qual se quer determinar a quantidade restante: 2, 140, 140 QuantidadeRestante = mg Escreva o valor inicial da substancia (mg), a sua meia-vida (dias) e o tempo para o qual se quer determinar a quantidade restante: 10, 140, 180 QuantidadeRestante = mg João Miguel C. Sousa GCAR, DEM, IST 15

16 Programação 1 Análise do problema 2 Desenvolvimento da solução - projecto do algoritmo 3 Codificação do programa 4 Execução e testes 5 Manutenção! Análise do problema Descrição das entradas Descrição das saídas! Desenvolvimento da solução Elaboração do algortimo! Selecção das estruturas de dados! Descrição das acções a efectuar Sequenciação Selecção Repetição João Miguel C. Sousa GCAR, DEM, IST 16

17 Programação (cont.)! Desenvolvimento da solução (cont.) Análise topo-base - divisão do problema em sub-problemas mais simples. Programa é dividido em módulos.! Codificação do programa Desenvolvimento de código em Fortran 90! Variáveis - devem começar por uma letra e seguidas por 30 letras, números ou underscores.! Tipos - tipo de valores que as variáveis podem ter. Ex: REAL, INTEGER, etc.! Operações - *, /, **, etc.! Atribuição -o sinal = atribui o valor da expressão à variável que está à esquerda.! Input/Output - READ, PRINT, WRITE, etc.! Comentários - símbolo! Estilo de programação - programas devem ser correctos, legíveis e perceptíveis. João Miguel C. Sousa GCAR, DEM, IST 17

18 Estilo de programação! Programas devem ser bem estruturados Usar metodologia topo-base para desenvolver um progama para problemas complexos. Simples e claro - evitar truques de programação que aumentam pouco a velocidade de execução.! Documentação cuidada Documentação inicial Comentários para explicar partes importantes Identificadores com um significado claro! Estilo de formatação legível Espaços entre items Inserir linha entre secções de um programa Alinhamento e identação João Miguel C. Sousa GCAR, DEM, IST 18

19 Execução e testes! Programa deve ser correcto.! Sintaxe - define qual a linguagem correcta da linguagem. Erros de sintaxe são detectados pelo compilador sendo relativamente fáceis de corrigir.! Semântica - define o significado do código implementado. Erros de semântica- Programador não especificou correctamente a sequência de instruções. Difíceis de detectar. " Exemplo: QuantidadeRestante = QuantidadeInicial * 0.5 ** (Tempo / MeiaVida) QuantidadeRestante = QuantidadeInicial * 0.5 * (Tempo / MeiaVida) Depuração (debugging) - técnicas que permitem minimizar os erros. João Miguel C. Sousa GCAR, DEM, IST 19

20 Manutenção! Modificações necessárias ao fim de um certo tempo tais como: Aumentar capacidade do programa com novas funções Melhorar o desempenho do programa Mudanças de sistema operativo, etc. " Exemplo: Fortran PowerStation, versão 4.0! Para isto é necessário efectuar a documentação externa, que contém: Documentação para utilizadores! descrição do que o programa faz! descrição do processo de utilização do programa! descrição da informação produzida! descrição das limitações do programa Documentação técnica! descrição das estruturas de informação e das principais variáveis e constantes! descrição do algoritmo! descrição da estrutura do programa incluindo os principais sub-programas e sua interligação João Miguel C. Sousa GCAR, DEM, IST 20

21 Introdução ao Fortran! Tipos de dados básicos integer real complex character logical Programa em Fortran cabeçalho zona de especificações zona de instruções zona de sub-programas END PROGRAM nome_de_programa João Miguel C. Sousa GCAR, DEM, IST 21

22 Tipos de dados! INTEGER cadeia de dígitos que não contém vírgulas ou pontos. # Exemplos: ! REAL cadeia de dígitos em forma decimal ou exponencial. # Exemplos: E E4 3374E0 João Miguel C. Sousa GCAR, DEM, IST 22

23 Tipos de dados e Identificadores! CHARACTER cadeia de caracteres dentro dos seguintes: 0, 9 A, Z a,,z ( ) * + - / branco : =! & $ ; < > %?,. # Exemplos: PDQ123-A Miguel C. Silva Miguel C. Silva Don t Don t! Identificadores nomes dados aos programas, constantes, variáveis, etc. Devem começar por uma letra, e serem seguidos por quaisquer 30 digitos, letras ou _ (sublinhado, underscore). # Exemplos: Massa Velocidade Velocidade_da_luz João Miguel C. Sousa GCAR, DEM, IST 23

24 Variáveis! Compilador associa cada variável a um endereço em memória. Nomes das variáveis são identificadores. Declaração de variáveis especificação_do_tipo :: lista! especificação_do_tipo pode ser dada por: REAL :: lista INTEGER :: lista CHARACTER(LEN = n) :: lista CHARACTER(n) :: lista COMPLEX LOGICAL # Exemplos: REAL :: Massa, Velocidade, Aceleracao INTEGER :: Soma, NumeroValores CHARACTER(LEN = 15) :: Nome, Apelido CHARACTER(15) :: Apelido*20, Inicial*1 João Miguel C. Sousa GCAR, DEM, IST 24

25 Variáveis (cont.)! Instrução IMPLICIT NONE Cancela a convenção implícita do Fortran e deve ser sempre incluída na zona de especificações.! Inicialização de variáveis na declaração Quando são declaradas, as variáveis em Fortran não têm um valor inicial. Inicialização na declaração de variáveis especificação_do_tipo :: lista Onde lista é dada por uma série de atribuições separadas por vírgulas do tipo: Variavel = ExpressaoConstante # Exemplo: REAL :: X = 1.0, Y = 2.5, Z = -2.9 João Miguel C. Sousa GCAR, DEM, IST 25

26 Constantes! Atributo PARAMETER Constantes que aparecem repetidas vezes num programa, tal como pi. Declaração de constantes especificação_do_tipo, PARAMETER :: lista! Onde lista é dada por uma série de atribuições separadas por vírgulas do tipo: Identificador = ExpressaoConstante # Exemplos: INTEGER, PARAMETER :: Limite = 50 REAL, PARAMETER :: Pi = CHARACTER(2), PARAMETER :: Units = cm CHARACTER(*), PARAMETER :: Units = cm CoordenadaX = Rate * COS(Pi * Time) João Miguel C. Sousa GCAR, DEM, IST 26

27 Operadores aritméticos! Exemplos: + Adição - Subtracção * Multiplicação / Divisão ** Exponenciação 9.0 / / 4 2! Combinação de reais e inteiros é possível, mas não deve ser utilizada! É um exemplo típico de mau estilo de programação! / / / João Miguel C. Sousa GCAR, DEM, IST 27

28 Operadores aritméticos (cont.)! Exponenciação 2.0 ** * 2.0 * (-4.0) ** 2 (-4.0) * (-4.0) ** 3.0 é avaliado como e 3.0 ln(2.0), logo: (-4.0) ** 2.0 é indefinido! Devem-se assim evitar os expoentes reais, quando desnecessário! Regras de prioridade em operadores 1 As exponenciações são efectuadas em primeiro lugar da direita para a esquerda. 2 Multiplicações e divisões são efectuadas em seguida da esquerda para a direita. 3 Adições e subtrações são efectuadas por último também da esquerda para a direita. João Miguel C. Sousa GCAR, DEM, IST 28

29 Funções intrínsecas! O Fortran tem algumas funções prédefinidas, tal como a raíz quadrada: SQRT SQRT(argumento) A variável argumento deverá ser do tipo REAL. Se for INTEGER, dever-se-á calcular a raíz quadrada da seguinte forma: SQRT(REAL(NumeroInteiro))! Outras funções: ABS, SIN, COS, EXP, INT, FLOOR, LOG, REAL, INT, etc. João Miguel C. Sousa GCAR, DEM, IST 29

30 Instrução de atribuição variavel = expressao! O sinal = indica que o valor da expressao é atribuído a variavel. # Exemplo: REAL :: CoordenadaX, CoordenadaY INTEGER :: Numero, Termo CoordenadaX? CoordenadaY? Numero? Termo? CoordenadaX = 5.23 CoordenadaY = SQRT(25.0) Numero = 17 Termo = Numero / João Miguel C. Sousa GCAR, DEM, IST 30

31 Atribuição (cont.) CoordenadaX 5.23 CoordenadaY 5.0 Numero 17 Termo 7 CoordenadaX = 2.0 * CoordenadaX CoordenadaX CoordenadaY 5.0 Numero 17 Termo 7! Como se pode verificar, a memória foi actualizada com o novo valor atribuído a CoordenadaX. O valor antes atribuído perdeu-se! Inteiro = Real / 2.0 Má programação! Inteiro = INT(Real / 2.0) João Miguel C. Sousa GCAR, DEM, IST 31

32 Atribuição de cadeia de caracteres # Exemplo: CHARACTER(5) :: String, Aumentada*10, Cortada String = alpha Aumentada = particula Cortada = temperatura! Atribuição pelo Fortran: String Aumentada Cortada alpha particula_ tempe! A = B é equivalente a! B = A? João Miguel C. Sousa GCAR, DEM, IST 32

33 Troca e somatório! Troca de valor entre duas variáveis INTEGER :: Valor1, Valor2, Auxiliar Auxiliar = Valor1 Valor1 = Valor2 Valor2 = Auxiliar! Somatório REAL :: Somatorio, Real Somatorio = Somatorio + Real João Miguel C. Sousa GCAR, DEM, IST 33

34 Operações de Entrada e Saída! Fortran tem duas formas de Input/Output Formato especificado pelo programador. Formatos normalizados pré-determinados; são formatos direccionados para listas. Instruções simples de Saída Formas: PRINT *, lista_de_saida WRITE (*, *) lista_de_saida # Exemplo: WRITE (*, *) No tempo, Tempo, segundos WRITE (*, *) a velocidade vertical e, & Velocidade, m/s WRITE (*, *) e a altitude e, Altitude, m! Resultado obtido: No tempo segundos a velocidade vertical e m/s e a altitude e E+02 m João Miguel C. Sousa GCAR, DEM, IST 34

35 Operações de Entrada Instruções simples de Entrada Formas: READ *, lista_de_dados READ (*, *) lista_de_dados É processada uma linha de dados para cada instrução READ Variáveis são lidas até atingir o número de variáveis na lista_de_dados. Se existirem mais entradas do que na lista_de_dados, as restantes são ignoradas. As variáveis escritas devem ser constantes, e do tipo a ser atribuidas. Entradas consecutivas são separadas por uma vírgula ou um espaço em branco. João Miguel C. Sousa GCAR, DEM, IST 35

36 Operações de Entrada (cont.) # Exemplo numérico: READ (*, *) AltitudeInicial, Tempo 100.0, ! As variáveis do tipo carácter devem estar entre aspas se: Ultrapassam uma linha O valor contém brancos,, ou /. O carácter começa com um apóstrofo, aspas ou uma cadeia de digitos seguidos de um *. # Exemplo com caracteres: CHARACTER(8) :: Unidade_1, Unidade_2... READ (*, *) Unidade_1, Unidade_2 metro, centimetro João Miguel C. Sousa GCAR, DEM, IST 36

37 Programa Projectil PROGRAM Projectil! ! Este programa calcula a velocidade e a altitude de um! projectil, dados a altitude inicial, a velocidade inicial! e a aceleração da gravidade. Variaveis usadas:! AltitudeInicial : altitude inicial do projectil (m)! Altitude : altitude para um dado tempo (m)! VelocidadeInicial : velocidade inicial do projectil(m/s)! Velocidade : velocidade vertical (m/s)! Aceleracao : aceleracao vertical (m/s2)! Tempo : tempo desde o lancamento (s)!! Entradas: AltitudeInicial, VelocidadeInicial, Tempo! Saidas: Altitude, Velocidade! IMPLICIT NONE REAL :: AltitudeInicial, VelocidadeInicial, Tempo, & Altitude, Velocidade, Aceleracao = ! Recebe valores AltitudeInicial, VelocidadeInicial, Tempo WRITE (*, *) Escreva a altitude inicial(m) e a & & velocidade(m/s): READ (*, *) AltitudeInicial, VelocidadeInicial WRITE (*, *) Escreva o valor do tempo(s) pretendido: READ (*, *) Tempo! Calcula a quantidade restante para o tempo especificado. Altitude = 0.5 * Aceleracao * Tempo ** 2 & + VelocidadeInicial * Tempo + AltitudeInicial Velocidade = Aceleracao * Tempo + VelocidadeInicial! Mostra Velocidade e Altitude WRITE (*, *) No tempo ", Tempo, segundos WRITE (*, *) a velocidade vertical e de, Velocidade, "m/s WRITE (*, *) e a altitude e de", Altitude, "metros STOP END PROGRAM Projectil João Miguel C. Sousa GCAR, DEM, IST 37

38 Resultados obtidos Escreva a altitude inicial(m) e a velocidade(m/s): Escreva o valor do tempo(s) pretendido: 4.5 No tempo segundos a velocidade vertical e de m/s e a altitude e de E+2 metros Escreva a altitude inicial(m) e a velocidade(m/s): Escreva o valor do tempo(s) pretendido: 5.0 No tempo segundos a velocidade vertical e de m/s e a altitude e de E+2 metros Escreva a altitude inicial(m) e a velocidade(m/s): Escreva o valor do tempo(s) pretendido: 0 No tempo E+00 segundos a velocidade vertical e de E+2 m/s e a altitude e de E+2 metros João Miguel C. Sousa GCAR, DEM, IST 38

39 Entrada/Saída com ficheiros! Entradas e saídas podem ser efectuadas para um ficheiro no disco # Exemplo de um ficheiro dados.dat: # Exemplo de um ficheiro result.dat: No tempo segundos a velocidade vertical e de m/s e a altitude e de E+2 metros OPEN (UNIT = numero_unidade, FILE = & nome_ficheiro, STATUS = estado) # Exemplos anteriores OPEN (UNIT = 12, FILE = dados.dat, STATUS = OLD ) OPEN (UNIT = 13, FILE = result.dat, STATUS = NEW ) READ (num_unidade, *) lista_dados WRITE (num_unidade, *) lista_resultados João Miguel C. Sousa GCAR, DEM, IST 39

40 Erros Aritméticos! Números reais são guardados em memória com mantissa e expoente: mantissa: 24 bits expoente: 8 bits m e Quantidade de números finita Nem todos os números são representados! Erros de overflow e underflow Para 8 bits no expoente os números representados estão entre e Para números pequenos este intervalo varia entre e João Miguel C. Sousa GCAR, DEM, IST 40

41 Erros de arredondamento! Representação de números é aproximada Reais não são representados exactamente # Exemplo: equação que retorna sempre 1: a f 2 2 A+ B 2AB B 2 A 2 A = = 1 2 A PROGRAM Demo_1 IMPLICIT NONE REAL :: A, B, C READ (*, *) A, B, C C = ((A + B)**2-2.0*A*B - B**2) / A**2 WRITE (*,*) C END PROGRAM Demo_1 # Resultados obtidos num dado sistema: A B C E+02 João Miguel C. Sousa GCAR, DEM, IST 41

42 Estruturas de Selecção! Estruturação de controlo em programação Sequenciação Selecção Repetição! Sequenciação João Miguel C. Sousa GCAR, DEM, IST 42

43 Exemplos simples # Exemplo 1: Índice de poluição Se índice de poluição é maior do que 50, Informar que a poluição é elevada; Caso contrário, Informar que as condições são seguras. # Exemplo 2: Tipo de fluido num tubo Se número de Reynolds menor que x 1, Escoamento é laminar; Se número de Reynolds se encotra entre x 1 e x 2, Escoamento é instável; Se número de Reynolds maior que x 2,, Escoamento é turbulento. João Miguel C. Sousa GCAR, DEM, IST 43

44 Expressões lógicas! Podem ser simples ou compostas! Expressões simples: constantes lógicas (.TRUE. e.false.) variáveis lógicas (a ver mais à frente) expressões relacionais: expressao_1 op_relacional expressao_2! Operadores relacionais Símbolo Significado < ou.lt. Menor que > ou.gt. Maior que == ou.eq. Igual a <= ou.le. Menor ou igual a >= ou.ge. Maior ou igual a /= ou.ne. Diferente de # Exemplos.TRUE. Numero == -999 B ** 2 >= 4.0 * A * C João Miguel C. Sousa GCAR, DEM, IST 44

45 Expressões lógicas (cont.)! Avaliação de caracteres Cada carácter tem um número de ordem associado dados por um código (ASCII, EBCDIC)! Letras por ordem alfabética! Dígitos por ordem numérica caracteres_1 < caracteres_2 # Exemplos gato < vaca Junho > Julho cal > calado caløøø > calado! Expressões lógicas compostas Operador lógico.not..and..or..eqv..neqv. Expressão lógica.not. p p.and. q p.or. q p.eqv. q p.neqv. q João Miguel C. Sousa GCAR, DEM, IST 45

46 Estruturas de selecção Construção IF (forma simples) Forma: IF (expressao_logica) THEN sequencia_instrucoes END IF A sequencia_instrucoes só é executada se a expressao_logica for verdadeira. # Exemplo IF (X >= 0) THEN Y = Z * X Z = SQRT(X) END IF Instrução IF IF (expressao_logica) THEN instrucao João Miguel C. Sousa GCAR, DEM, IST 46

47 Construção IF Construção IF (forma geral) Forma: IF (expressao_logica) THEN sequencia_instrucoes1 ELSE sequencia_instrucoes2 END IF A sequencia_instrucoes1 é avaliada se a expressao_logica for verdadeira. Caso contrário, são avaliadas as instruções em sequencia_instrucoes2 João Miguel C. Sousa GCAR, DEM, IST 47

48 Exemplo: Equações Quadráticas Algoritmo! Este algoritmo resolve uma equação quadrática do tipo Ax 2 +Bx+C = 0. Se o discriminante B 2-4AC é não negativo, as raízes reais Raiz_1 e Raiz_2 são calculadas. Caso contrário, é enviada uma mensagem indicando que não existem raízes reais.! Entradas: Os coeficientes A, B e C.! Saídas: As raízes da equação ou uma mensagem indicando que não existem raízes reais e o discriminante. 1 Recebe A, B e C. 2 Calcula Discriminante = B ** 2-4 A * C 3 Se Discriminante >= 0 faz o seguinte: a) Calcula Discriminante = SQRT(Discriminante). b) Calcula Raiz_1 = (- B + Discriminante)/(2*A). c) Calcula Raiz_2 = (- B - Discriminante)/(2*A). d) Mostra Raiz_1 e Raiz_2 ao utilizador. 4 Caso contrário faz o seguinte: a) Mostra o Discriminante. b) Envia mensagem de que não existem reaízes reais. João Miguel C. Sousa GCAR, DEM, IST 48

49 Programa: Equações quadráticas (1) PROGRAM Equacoes_Quadraticas! ! Programa para resolver equacoes quadraticas usando a! formula quadratica. Variaveis usadas:!! A, B, C : coeficientes da equacao quadratica! Discriminante : o discriminante B**2-4.0*A*C! Raiz_1, Raiz_2 : duas raizes da equacao!! Entradas: Coeficientes A, B, C! Saidas: As duas raizes ou o discriminante negativo e uma! mensagem indicando que nao ha raizes reais.! IMPLICIT NONE REAL :: A, B, C, Discriminante, Raiz_1, Raiz_2! Recebe os valores dos coeficientes WRITE (*, *) Escreva os coeficientes da equacao quadratica: READ (*, *) A, B, C! Calcula o discriminante Discriminante = B**2-4.0*A*C João Miguel C. Sousa GCAR, DEM, IST 49

50 Programa: Equações quadráticas (2)! Verifica se o discriminante e nao negativo. Se for calcula! as raizes e mostra o resultado. Caso contrário, mostra o! valor do discriminante e envia uma mensagem indicado que! nao existem raizes reais IF (Discriminante >= 0) THEN Discriminante = SQRT(Discriminante) Raiz_1 = (-B + Discriminante) / (2.0 * A) Raiz_2 = (-B - Discriminante) / (2.0 * A) WRITE (*, *) "As raizes sao", Raiz_1, Raiz_2 ELSE WRITE (*, *) O discriminante tem o valor, Discriminante WRITE (*, *) Nao ha raizes reais END IF END PROGRAM Equacoes_quadraticas! Exemplos de execução: Escreva os coeficientes da equacao quadratica: 1, -5, 6 As raizes sao Escreva os coeficientes da equacao quadratica: 1, 0, -4 As raizes sao Escreva os coeficientes da equacao quadratica: 1, 0, 4 O discriminante tem o valor Nao ha raizes reais João Miguel C. Sousa GCAR, DEM, IST 50

51 Construção de IFs encadeados # Exemplo f ( x) = x, 2 x, 1, x 0 0 < x x 1 < 1! Pode ser programado com dois IF encadeados: IF (X <= 0) THEN ValorFuncao = -X ELSE IF (X < 1.0) THEN ValorFuncao = X ** 2 ELSE ValorFuncao = 1.0 END IF END IF João Miguel C. Sousa GCAR, DEM, IST 51

52 Construção IF-ELSE IF! No caso de haver mais alternativas, existe uma estrutura própria para estes casos: Construção IF-ELSE IF Forma: IF (expressao_logica1) THEN sequencia_instrucoes_1 ELSE IF (expressao_logica2) THEN sequencia_instrucoes_2 ELSE IF (expressao_logica3) THEN sequencia_instrucoes_3... ELSE sequencia_instrucoes_n END IF João Miguel C. Sousa GCAR, DEM, IST 52

53 Exemplo: Índice de poluição Algoritmo! Este algoritmo lê três níveis de poluição e calcula um índice de poluição em função desta leitura. Se o índice é inferior a um dado nível é enviada uma mensagem indicando que o ar é de boa qualidade; se está entre dois valores limites é enviada uma mensagem indicando que o ar é de qualidade razoável; e se o índice está acima do limite máximo é enviada uma mensagem indicando que o ar é de pobre qualidade.! Entradas: Os níveis Nivel_1, Nivel_2 e Nivel_3.! Constantes: Os limites LimiteInferior e Limite Superior.! Saídas: O Indice de poluição indicado numa mensagem. 1 Recebe Nivel_1, Nivel_2 e Nivel_3. 2 Calcula Indice = (Nivel_1 + Nivel_2 + Nivel_3) / 3. 3 Se Indice < LimiteInferior, Envia mensagem de Boa qualidade do ar Caso contrário se Indice < LimiteInferior, Envia mensagem de Qualidade de ar razoável. Caso contrário Envia mensagem de Qualidade de ar pobre. João Miguel C. Sousa GCAR, DEM, IST 53

54 Programa: Índice de poluição 1 (1) PROGRAM Indice_Poluicao1! ! Programa que le 3 niveis de poluicao, calcula o indice de! pooluicao com a sua media, e retorna a qualidade de ar! Respectiva. Identificadores usados:! Nivel_1, Nivel_2, Nivel_3 : 3 valores de poluicao! LimiteInferior, LimiteSuperior : limites de poluicao! Indice : indice medio de poluicao!! Entradas: Os 3 niveis de poluicao! Constantes: Os limites de poluicao! Saidas: O indice de poluicao e a qualidade do ar. Sera! boa se indice for menor que LimiteInferior,! razoavel se indice estiver entre os dois! Limites e pobre caso contrario.! IMPLICIT NONE INTEGER :: Nivel_1, Nivel_2, Nivel_3, Indice INTEGER, PARAMETER :: LimiteInferior = 25, LimiteSuperior =50! Recebe os valores dos 3 niveis de poluicao WRITE (*, *) Escreva as tres leituras de nivel de poluicao: READ (*, *) Nivel_1, Nivel_2, Nivel_3! Calcula o indice de poluicao Indice = (Nivel_1 + Nivel_2 + Nivel_3) / 3 João Miguel C. Sousa GCAR, DEM, IST 54

55 Programa: Índice de poluição 1 (2)! Classifica o indice de poluicao e retorna uma mensagem! indicando a qualidade do ar. IF (Indice < LimiteInferior) THEN WRITE (*, *) Boa qualidade de ar" ELSE IF (Indice < LimiteSuperior) THEN WRITE (*, *) Ar de qualidade razoavel" ELSE WRITE (*, *) Ar de qualidade pobre" END IF END PROGRAM Indice_Poluicao1! Exemplos de execução: Escreva as tres leituras de nivel de poluicao: 30, 40, 50 Ar de qualidade razoavel Escreva as tres leituras de nivel de poluicao: 50, 60, 70 Ar de qualidade pobre Escreva as tres leituras de nivel de poluicao: 20, 21, 24 Boa qualidade de ar João Miguel C. Sousa GCAR, DEM, IST 55

56 Construção CASE Construção CASE Forma: SELECT CASE (selector) CASE (lista_marcas_1) sequencia_instrucoes_1 CASE (lista_marcas_2) sequencia_instrucoes_2... CASE (lista_marcas_n) sequencia_instrucoes_n END SELECT! Cada lista lista_marcas_i pode ter as formas: valor valor_1 : valor_2 valor_1 : : valor_2! Pode incluir-se o caso CASE DEFAULT João Miguel C. Sousa GCAR, DEM, IST 56

57 Exemplo CASE! Pretende-se informar a classe (Infantil, Iniciado, Júnior, Sénior) consoante o número associado (1, 2, 3, 4). SELECT CASE (CodigoClasse) CASE (1) WRITE (*, *) Infantil CASE (2) WRITE (*, *) Iniciado CASE (3) WRITE (*, *) Junior CASE (4) WRITE (*, *) Senior CASE DEFAULT WRITE (*, *) Codigo invalido, & CodigoClasse END SELECT João Miguel C. Sousa GCAR, DEM, IST 57

58 Programa: Índice de poluição 2 (1) PROGRAM Indice_Poluicao2! ! Programa que le 3 niveis de poluicao, calcula o indice de! pooluicao com a sua media, e retorna a qualidade de ar! Respectiva. Identificadores usados:! Nivel_1, Nivel_2, Nivel_3 : 3 valores de poluicao! LimiteInferior, LimiteSuperior : limites de poluicao! Indice : indice medio de poluicao!! Entradas: Os 3 niveis de poluicao! Constantes: Os limites de poluicao! Saidas: O indice de poluicao e a qualidade do ar. Sera! boa se indice for menor que LimiteInferior,! razoavel se indice estiver entre os dois! Limites e pobre caso contrario.! IMPLICIT NONE INTEGER :: Nivel_1, Nivel_2, Nivel_3, Indice INTEGER, PARAMETER :: LimiteInferior = 25, LimiteSuperior =50! Recebe os valores dos 3 niveis de poluicao WRITE (*, *) Escreva as tres leituras de nivel de poluicao: READ (*, *) Nivel_1, Nivel_2, Nivel_3! Calcula o indice de poluicao Indice = (Nivel_1 + Nivel_2 + Nivel_3) / 3 João Miguel C. Sousa GCAR, DEM, IST 58

59 Programa: Índice de poluição 2 (2)! Classifica o indice de poluicao e retorna uma mensagem! Indicando a qualidade do ar. SELECT CASE (Indice) CASE (:LimiteInferior - 1) WRITE (*, *) Boa qualidade de ar CASE (LimiteInferior : LimiteSuperior - 1) WRITE (*, *) Ar de qualidade razoavel" CASE (LimiteSuperior:) WRITE (*, *) Ar de qualidade pobre" END SELECT END PROGRAM Indice_Poluicao2! Os resultados são exactamente os mesmos. João Miguel C. Sousa GCAR, DEM, IST 59

60 Dados do tipo LOGICAL! Constantes do tipo lógico em Fortran:.TRUE..FALSE.! Especificação do tipo lógico LOGICAL :: lista variavel_logica = expressao_logica # Exemplos ExisteRaiz = Discriminante >= 0 WRITE (*, *) A, B, C,.TRUE.,.FALSE. Produz: _T_ F_F_T_F onde _ representa um espaço em branco. João Miguel C. Sousa GCAR, DEM, IST 60

61 Estruturas de Repetição! Ciclos (loops) Repetição controlada por contador Repetição controlada por expressão lógica Ciclo DO controlado por contador Forma: DO variavel_controlo = & valor_inicial, limite, passo sequencia_instrucoes END DO Este ciclo implementa repetições onde o número desejado é conhecido antecipadamente. João Miguel C. Sousa GCAR, DEM, IST 61

62 Ciclo DO controlado por contador Execução efectuada da seguinte forma: 1. Atribuído valor inicial a variavel_controlo 2. A variavel_controlo é comparada com o limite onde é verificado se é: a) menor ou igual a limite para um passo positivo; b) maior ou igual a limite para um passo negativo. 3. Caso a) ou b) se verifique, o corpo do ciclo (a sequencia_instrucoes) é executado. O passo é somado à variavel_controlo e o ponto 2 é repetido. Caso contrário o ciclo termina. # Exemplo 1 DO Numero = 1, 7 WRITE (*, *) Numero, Numero ** 2 END DO João Miguel C. Sousa GCAR, DEM, IST 62

63 Exemplos ciclo DO com contador Saída do exemplo 1: # Exemplo 2 DO Numero = 7, 1, -1 WRITE (*, *) Numero, Numero ** 2 END DO Saída do exemplo 2: João Miguel C. Sousa GCAR, DEM, IST 63

64 Programa: Soma de inteiros PROGRAM Soma_de_Inteiros! ! Programa que calcula a soma de um dado numero de! numeros inteiros. Variaveis usadas:! Numero : o ultimo inteiro a ser somado! Soma : a soma Numero! i : indice do ciclo DO!! Entrada: Numero! Saidas: Numero e Soma! IMPLICIT NONE INTEGER :: Numero, i, Soma = 0 WRITE (*, *) Este programa calcula a soma & &Numero. WRITE (*, *) Escreva o numero inteiro: READ (*, *) Numero DO i = 1, Numero Soma = Soma + i END DO WRITE (*, *) , Numero, =, Soma END PROGRAM Soma_de_Inteiros # Exemplo de execução: Este programa calcula a soma Numero. Escreva o numero inteiro: = 55 João Miguel C. Sousa GCAR, DEM, IST 64

65 Programa: Tabela de multiplicação PROGRAM Tabela_de_Multiplicacao! ! Programa que calcula e mostra a lista do produto de dois! numeros. Variaveis usadas:! m, n : os dois numeros a ser multiplicados! Produto : o produto de m e n! Ultimo_m, Ultimo_n : ultimos valores a atribuir a m e n!! Entradas: Ultimo_m, Ultimo_n! Saidas: Lista dos produtos m * n! IMPLICIT NONE INTEGER :: m, n, Produto, Ultimo_m, Ultimo_n WRITE (*, *) Insira os ultimos valores dos dois numeros: READ (*, *) Ultimo_m, Ultimo_n WRITE (*, *) m n m * n WRITE (*, *) =========== DO m = 1, Ultimo_m DO n = 1, Ultimo_n Produto = m * n WRITE (*, *) m,, n,, Produto END DO END DO END PROGRAM Tabela_de_Multiplicacao João Miguel C. Sousa GCAR, DEM, IST 65

66 Tabela de multiplicação: resultados # Resultado obtido: Insira os ultimos valores dos dois numeros: 4, 4 m n m * n =========== João Miguel C. Sousa GCAR, DEM, IST 66

67 Construção DO-EXIT Ciclo DO-EXIT Forma: DO sequencia_instrucoes_1 IF (expressao_logica) EXIT sequencia_instrucoes_2 END DO! Tanto sequencia_instrucoes_1 como sequencia_instrucoes_2 podem ser omitidas.! Número de repetições não é conhecido antecipadamente. Ciclo é repetido até a expressao_logica ser verdadeira.! NOTA: Se a expressao_logica nunca for verdadeira, temos um ciclo infinito! João Miguel C. Sousa GCAR, DEM, IST 67

68 Exemplo: Somatório Algoritmo! Algoritmo para encontrar o Numero inteiro positivo mais pequeno para o qual a soma Numero é maior que um dado valor Limite especificado.! Entradas: Um valor inteiro Limite.! Saídas: O Numero e a Soma. 1 Recebe Limite. 2 Atribui 0 (zero) ao Numero. 3 Atribui 0 (zero) à Soma. 4 Repete o seguinte: a) Se Soma > Limite termina a repetição; caso contrário continua com o seguinte. b) Incremeta Numero de uma unidade. c) Soma Numero e Soma. 5 Retorna Numero e Soma. João Miguel C. Sousa GCAR, DEM, IST 68

69 Programa: Somatório PROGRAM Soma_de_Inteiros! ! Programa que encontra o Numero inteiro positivo mais! pequeno para o qual a soma Numero, e maior que! um dado valor Limite especificado. Variaveis usadas:! Numero : o numero corrente a ser adicionado! Soma : a soma Numero! Limite : valor limite especificado!! Entrada: Valor Limite inteiro! Saidas: Numero e o valor da Soma.! IMPLICIT NONE INTEGER :: Numero, Soma, Limite! Recebe o valor do Limite, e inicializa Numero e Soma WRITE (*, *) Escreva o valor que excede a soma ?: READ (*, *) Limite Numero = 0 Soma = 0! Repete ate a Soma exceder o Limite DO IF (Soma > Limite) EXIT! termina repeticao! caso contrario continua com o seguinte: Numero = Numero + 1 Soma = Soma + Numero END DO! Imprime os resultados WRITE (*, *) 1 + +, Numero, =, Soma, >, Limite END PROGRAM Soma_Inteiros João Miguel C. Sousa GCAR, DEM, IST 69

70 Somatório: Resultados # Exemplos de execução: Escreva o valor que excede a soma ?: = 15 > 10 Escreva o valor que excede a soma ?: = > Escreva o valor que excede a soma ?: = 0 > -1 Numero Soma Soma < Limite Acção 0 0.TRUE. Executa corpo do ciclo 1 1.TRUE. Executa corpo do ciclo 2 3.TRUE. Executa corpo do ciclo 3 6.TRUE. Executa corpo do ciclo 4 10.TRUE. Executa corpo do ciclo 5 15.FALSE. Termina repetição João Miguel C. Sousa GCAR, DEM, IST 70

71 Ciclos de entrada de dados! Teste no meio do ciclo repete o seguinte: 1 Lê um dado valor de entrada. 2 Se o fim dos dados for encontrado, termina a repetição; caso contrário é executado o seguinte: 3 Processa o valor recebido.! Para saber que os dados acabaram usam-se marcas (flag) ou IOSTAT=.! Os testes podem igualmente ser efectuados apenas no fim fo ciclo, garantindo que este é executado pelo menos uma vez. João Miguel C. Sousa GCAR, DEM, IST 71

72 Ex: Conversão de Temperaturas Algoritmo! Este algoritmo converte temperaturas de graus Celsius para a temperatura corrspondente em Fahrenheit. Os valores são processados até o utilizador indicar que não existem mais dados (temperaturas a converter).! Entradas: Temperaturas em Celsius. Resposta do utlizador! Saídas: Temperaturas em graus Fahrenheit.! Repetir o seguinte: 1 Lê a temperatura Celsius. 2 Calcula Fahrenheit = 1.8 * Celsius Mostra a temperatura Fahrenheit. 4 Pergunta ao utlizador se existem mais temperaturas para converter. 5 Lê a resposta do utilizador (S ou N). 5 Se Resposta = N, termina a repetição João Miguel C. Sousa GCAR, DEM, IST 72

73 Prog: Conversão Temperaturas (1) PROGRAM Conversao_de_Temperatura! ! Programa que converte temperaturas de graus Celsius para a! temperatura correspondente em Fahrenheit. Os valores são! processados até o utilizador indicar que não existem mais! temperaturas a converter. Variaveis usadas:! Celsius : temperatura em graus Celsius! Fahrenheit : temperatura em graus Fahrenheit! Resposta : resposta do utilizador!! Entradas: Celsius, Resposta! Saida: Fahrenheit! IMPLICIT NONE REAL :: Celsius, Fahrenheit CHARACTER (1) :: Resposta! Ciclo-questionario que processa temperaturas DO! Le temperatura em graus Celsius WRITE (*, *) Escreva a temperatura em graus Celsius: READ (*, *) Celsius! Calcula a temperatura em graus Fahrenheit correspondente Fahrenheit = 1.8 * Celsius + 32! Mostra valor da temperatura convertido WRITE (*, *) Celsius, graus Celsius =, & Fahrenheit, graus Fahrenheit João Miguel C. Sousa GCAR, DEM, IST 73

74 Prog: Conversão Temperaturas (2)! Pergunta ao utilizador se existem mais dados WRITE (*, *) WRITE (*, *) Existem mais temperaturas a converter (S & &ou N)? READ (*, *) Resposta IF (Resposta == N ) EXIT END DO END PROGRAM Conversao_de_Temperatura # Exemplos de execução: Escreva a temperatura em graus Celsius: e+00 graus Celsius = graus Fahrenheit Existem mais temperaturas a converter (S ou N)? Y Escreva a temperatura em graus Celsius: graus Celsius = graus Fahrenheit Existem mais temperaturas a converter (S ou N)? Gdfff Escreva a temperatura em graus Celsius: graus Celsius = E-02 graus Fahrenheit Existem mais temperaturas a converter (S ou N)? N João Miguel C. Sousa GCAR, DEM, IST 74

75 Instrução CYCLE! Quando a condição do IF é satisfeita, mas não se pretende terminar o ciclo, como o faz a instrução EXIT, usa-se CYCLE. Esta instrução deve ser evitada! # Exemplo no programa anterior: DO! Le temperatura em graus Celsius WRITE (*, *) Escreva a temperatura em graus Celsius: READ (*, *) Celsius IF (Celsius < 0.0) WRITE (*, *) Temperatura deve ser maior ou & &igual a zero! CYCLE END IF! Calcula a temperatura em graus Fahrenheit correspondente Fahrenheit = 1.8 * Celsius + 32! Mostra valor da temperatura convertido WRITE (*, *) Celsius, graus Celsius =, & Fahrenheit, graus Fahrenheit! Pergunta ao utilizador se existem mais dados WRITE (*, *) WRITE (*, *), Existem temperaturas a converter (S ou N)? READ (*, *) Resposta IF (Resposta == N ) EXIT END DO João Miguel C. Sousa GCAR, DEM, IST 75

76 Entrada / Saída! Tipos de entrada/saída em Fortran direccionado para listas formatada Instrução PRINT Forma: PRINT especificacao_formato, lista_saida! Onde a especificacao _formato pode ser: 1 * (um asterisco) 2 um carácter constante ou variável, expressão ou cadeia, cujo valor especifica o formato de saída 3 o rótulo de uma instruçao FORMAT.! A lista_saida é uma expressão separada por vírgulas, ou é vazia. João Miguel C. Sousa GCAR, DEM, IST 76

77 Formatação de saída Instrução FORMAT Forma: rotulo FORMAT (lista_descritores)! O rotulo é dado por um inteiro de 1 a # Exemplo: PRINT *, Numero, Temperatura PRINT (1X, I5, F8.2), Numero, Temperatura PRINT 20, Numero, Temperatura Onde 20 é um rótulo com a segunte instrução: 20 FORMAT (1X, I5, F8.2)! Estas instruções imprimem as variáveis Numero e Temperatura da seguinte forma: João Miguel C. Sousa GCAR, DEM, IST 77

78 Descritores de formato! Caracteres de controlo Carácter de controlo 1X ou Efeito Espaçamento normal: avança para nova linha antes de imprimir 0 Espaçamento duplo: salta uma linha antes de imprimir 1 Posiona-se no início de nova página antes de imprimir + Reimprime sobre a última linha impressa Não serão assumidos como activos daqui em diante. Para os exemplos correrem em qualquer sistema, usar-se-á sempre um deles no início de cada especificação do formato de saída.! Saídas do tipo inteiro - Descritor I Formas: riw ou riw.m onde: I - dados do tipo inteiro w - constante inteira indicando a largura do campo r - indicador de repetição m - número mínimo de dígitos a serem impressos João Miguel C. Sousa GCAR, DEM, IST 78

79 Formatação de inteiros # Exemplo 1: INTEGER :: Numero = 3, L = 5378, Kapa = ! (...) PRINT (1X, 2I5.2, I7, I10.7), Numero, & Numero - 3, L, Kapa PRINT (1X, 2I5.0, I7, I10), Numero, & Numero - 3, L, Kapa ou PRINT 31, Numero, Numero - 3, L, Kapa PRINT 32, Numero, Numero - 3, L, Kapa 31 FORMAT (1X, 2I5.2, I7, I10.7) 32 FORMAT (1X, 2I5.0, I7, I10)! produz o seguinte: # Exemplo 2: PRINT (1X, 4I3), Numero, Numero - 3, L, Kapa! retorna: 03 0****** João Miguel C. Sousa GCAR, DEM, IST 79

80 Formatação de reais! Saídas do tipo real - Descritor F Formas: rfw.d onde: F - dados do tipo real (floating point) w - constante inteira indicando a largura do campo d - número de dígitos à direita do ponto decimal r - indicador de repetição (constante do tipo inteiro) # Exemplos: INTEGER :: Entrada = 625, Saida = -19 REAL :: A = 7.5, B =.182, C = ! (...) PRINT (1X, 2I4, 2F6.3, F8.3), Entrada,Saida,A,B,C ou PRINT 50, Entrada, Saida, A, B, C 50 FORMAT (1X, 2I4, 2F6.3, F8.3)! produz o seguinte: se (1X, 2I10, 3F10.2); João Miguel C. Sousa GCAR, DEM, IST 80

81 Formatação de reais (cont.)! Saídas do tipo real - Descritor E Formas: rew.d ou rew.dee onde: E - dados de saída do tipo exponencial w - constante inteira indicando a largura do campo d - número digitos à direita do ponto decimal r - indicador de repetição (constante do tipo inteiro) e - número de posições usadas para o expoente # Exemplo: REAL :: A =.12345E8, B =.0237, C = 4.6E-12, & D = E12! (...) PRINT (1X, 2E13.5, E12.4, E13.4), A, B, C, D! produz o seguinte: E E E E João Miguel C. Sousa GCAR, DEM, IST 81

82 Formatação de reais (concl.)! Saídas do tipo real - Descritores ES e EN Formas: resw.d ou resw.dee renw.d ou renw.dee, onde: ES - descritor científico (scientific)! mantissa entre 1 e 10 EN - descritor usado em engenharia! mantissa entre 1 e 1000 # Exemplos: PRINT (1X, 2ES13.5, ES12.4, ES13.4), A, B, C, D! produz: E E E E PRINT (1X, 2EN13.4, EN12.4, EN13.4), A, B, C, D! produz: E E E E João Miguel C. Sousa GCAR, DEM, IST 82

83 Saídas com caracteres Formas: ra ou raw onde: A - indica o tipo carácter w - constante inteira indicando a largura do campo r - indicador de repetição # Exemplo 1: REAL :: X = 0.3, Y = 7.9! (...) PRINT (1X, X =, F6.2, Y =, F6.2), X, Y ou PRINT 70, X, Y 70 FORMAT (1X, X =, F6.2, Y =, F6.2) ou PRINT (1X, A, F6.2, A, F6.2), X =, X, Y =, Y ou PRINT 71, X =, X, Y =, Y 71 FORMAT (1X, A, F6.2, A, F6.2)! produz: X = 0.30 Y = # Exemplo 2: PRINT 71, Media e igual a, Media_X, & e tem a variancia, Variancia João Miguel C. Sousa GCAR, DEM, IST 83

84 Descritores de posição X e T Formas: nx - onde n especifica o número de brancos a inserir Tc - c indica o número do espaço na linha a escrever # Exemplo: INTEGER :: Numero = 141! (...) PRINT 75, Jose S. Silva, QED, Numero 75 FORMAT (1X, A13, 3X, A3, 2X, I3) ou 75 FORMAT (1X, A13, T18, A3, 2X, I3)! produzem ambos: Jose S. Silva QED # Outro FORMAT que produz a mesma saída: 75 FORMAT (1X, A13, 3X, A3, I5) João Miguel C. Sousa GCAR, DEM, IST 84

85 Repetição e descritor /! Os parêntesis, tal como r, são indicadores de repetição! A especificação de formato: (1X, A, F6.2, A, F6.2) pode ser escrita de forma mais compacta: (1X, 2(A, F6.2))! Descritor / - é usado para imprimir em várias linhas com diferentes formatos # Exemplo: INTEGER :: N = 5173, M = 7623 REAL :: A = 617.2, B = 29.25! (...) PRINT 88, Valores, N, A, M, B 88 FORMAT (1X, A, 2/, 1X, 2(I10 F10.2))! produz: Valores João Miguel C. Sousa GCAR, DEM, IST 85

86 Formatação de entrada Instrução READ Forma: READ especificacao_formato, lista_entrada! Onde a especificacao _formato pode ser: 1 * (um asterisco) 2 um carácter constante ou variável, expressão ou cadeia, cujo valor especifica o formato de saída 3 o rótulo de uma instruçao FORMAT.! A lista_entrada é uma expressão separada por vírgulas, ou é vazia.! No tipo de saída 2 a cadeia de caracteres é dada por: lista_descritores_formato, lista_descritores_formato, ou FORMAT (lista_descritores_formato) João Miguel C. Sousa GCAR, DEM, IST 86

87 Descritores do formato de entrada! São essencialmente os mesmos dos de saída, com as nuances: Entradas não podem ter caracteres constantes As vírgulas não são consideradas relevantes, excepto para o tipo carácter.! Leitura de inteiros com riw Os brancos são ignorados na leitura, excepto quando o descritor BZ é utilizado. O número de posições w deve ser respeitado.! Leitura de reais com rfw.d ou E,EN,ES Números podem ser dados sem pontos decimais Ponto decimal faz parte do número! Leitura de caracteres com ra e raw Quando READ contém uma cadeia de caracteres, todos os caracteres no campo associado ao descritor A são lidos. João Miguel C. Sousa GCAR, DEM, IST 87

88 Forma geral de saída Instrução WRITE Forma: WRITE (lista_controlo) lista_saida! Onde a lista_saida tem a mesma sintaxe da instrução PRINT. a lista_controlo deve incluir um especificador de unidade de saída e um dos items: 1 um especificador de formato, 2 uma instrução ADVANCE =, 3 outros items para processamento de ficheiros.! Imprime os valores na lista_saida usando as especificações dadas na lista_controlo.! Especificação de unidade é definida como: UNIT = especificador_unidade, ou especificador_unidade João Miguel C. Sousa GCAR, DEM, IST 88

89 Instrução WRITE (concl.)! Especificação de formato é definido como: FMT = especificador_formato, ou especificador_formato! A instrução ADVANCE = tem a forma: ADVANCE = expressao_caracteres # Exemplos: WRITE (6, *) Gravidade, Peso WRITE (6, FMT = *) Gravidade, Peso WRITE (UNIT = 6, FMT = *) Gravidade, Peso WRITE (Unidade_Saida, *) Gravidade, Peso WRITE (UNIT = Unidade_saida, FMT = *) &!(...) Gravidade, Peso WRITE (6, (1X, 2F10.2) ) Gravidade, Peso WRITE (6, 30) Gravidade, Peso 30 FORMAT (1X, 2F10.2) João Miguel C. Sousa GCAR, DEM, IST 89

90 Forma geral de entrada Instrução READ generalizada Forma: READ (lista_controlo) lista_entrada a lista_entrada é uma variável, ou uma lista de variáveis separadas por vírgulas. a lista_controlo deve incluir um especificador de unidade de saída e um dos items: 1 um especificador de formato, 2 uma instrução ADVANCE =, 3 uma instrução IOSTAT = ou uma instrução END = para detectar um erro de entrada ou um EOF (fim de ficheiro), 4 outros items para processamento de ficheiros.! Lê os valores da lista_entrada usando as especificações dadas na lista_controlo.! A especificação de unidade, a especificação de formato e a instrução ADVANCE = são iguais às definidas em WRITE. João Miguel C. Sousa GCAR, DEM, IST 90

Introdução à Programação

Introdução à Programação Introdução à Programação João Miguel da Costa Sousa Instituto Superior Técnico, Dep. de Engenharia Mecânica Secção Sistemas, Grupo de Controlo Automação e Robótica Pav. Eng. Mecânica III, 1049 001 Lisboa,

Leia mais

Introdução à Programação

Introdução à Programação Instituto Superior Técnico Dep. de Engenharia Mecânica GCAR, Secção de Sistemas Introdução Title: Introdução à Programação Creator: CorelDRAW Preview: This EPS picture was not saved with a preview included

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 laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.1/tcc-00.157

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 hbarbalho@ic.uff.br Material produzido pelo professor: Leandro Augusto Frata Fernandes (laffernandes@ic.uff.br)

Leia mais

Programação de Computadores:

Programação de Computadores: Instituto de C Programação de Computadores: Introdução ao FORTRAN Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Introdução ao FORTRAN Cinco aspectos

Leia mais

SEBENTA INTRODUÇÃO Á ALGORITMIA

SEBENTA INTRODUÇÃO Á ALGORITMIA SEBENTA INTRODUÇÃO Á ALGORITMIA O desenvolvimento de programas para computador está sempre baseado na tarefa de programar um computador para seja resolvido um problema ou executada uma função e assim dar

Leia mais

2.2.5 EXPRESSÕES - Regras para o cálculo de valores

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,

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

Conceitos Introdutórios sobre a Linguagem FORTRAN

Conceitos Introdutórios sobre a Linguagem FORTRAN Conceitos Introdutórios sobre a Linguagem FORTRAN Caracteres válidos Caracteres alfabéticos: A,a Z,z (não é Case sensitive ) Caracteres numéricos: 0-9 Caracteres especiais: branco. ; : + - / etc Constantes

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

CFAC: Programação em FORTRAN - I

CFAC: Programação em FORTRAN - I Programação em FORTRAN - I João Manuel R. S. Tavares Bibliografia FORTRAN ANSI 77 e WATFIV-S Jorge Filho, Caetano Loiola Editora Campus Linguagem de Programação Estruturada FORTRAN 77 Maximilian Emil Hehl

Leia mais

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

Programação em FORTRAN - I. João Manuel R. S. Tavares Programação em FORTRAN - I João Manuel R. S. Tavares Bibliografia FORTRAN ANSI 77 e WATFIV-S Jorge Filho, Caetano Loiola Editora Campus Linguagem de Programação Estruturada FORTRAN 77 Maximilian Emil Hehl

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

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

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

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

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@gmail.com

Leia mais

Universidade Federal do Rio Grande Bacharelado em Matemática Aplicada Disciplina de Algoritmos e Programação de Computadores

Universidade Federal do Rio Grande Bacharelado em Matemática Aplicada Disciplina de Algoritmos e Programação de Computadores Universidade Federal do Rio Grande Bacharelado em Matemática Aplicada Disciplina de Algoritmos e Programação de Computadores Emanuel Estrada Uma variável LOGICAL pode somente

Leia mais

Introdução à Computação

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 maria@deinf.ufma.br 1 Lógica de Programação

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

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

Computação e Programação

Computação e Programação Computação e Programação Acetatos: João Miguel da Costa Sousa Miguel Pedro Silva Instituto Superior Técnico, Dep. de Engenharia Mecânica - Secção Sistemas, Grupo de Controlo Automação e Robótica Informação

Leia mais

Introdução ao Fortran 90-3

Introdução ao Fortran 90-3 Introdução ao Fortran 90-3 Departamento de Física UFPel Controles de Fluxo de Execução Definição Estruturas (ou blocos) de programação que permitem controlar o fluxo de execução de um programa, além da

Leia mais

Computação e Programação MEMec - LEAN

Computação e Programação MEMec - LEAN Computação e Programação MEMec - LEAN 2009-2010 Docentes: Miguel Pedro Silva - Responsável José Borges João Reis Instituto Superior Técnico, Dep. de Engenharia Mecânica - ACCAII Programa 1. Introdução

Leia mais

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema ALGORITMIA Resolução De Problemas Em Informática Docente: Ana Paula Afonso 2000-2001 Resolução de Problemas 1. Analisar o problema Conhecer o bem o problema Descrever o problema: subdividir, detalhar 2.

Leia mais

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

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 3.3. Conceitos Básicos de C: Expressões, Operadores e Bibliotecas

Leia mais

Objectivos. Observar os tipos fornecidos pelo C++ Explicar as regras sintácticas para nomes de identificadores Estudar variáveis e constantes

Objectivos. Observar os tipos fornecidos pelo C++ Explicar as regras sintácticas para nomes de identificadores Estudar variáveis e constantes Tipos de Dados Objectivos Observar os tipos fornecidos pelo C++ São dados alguns exemplos Explicar as regras sintácticas para nomes de identificadores Estudar variáveis e constantes O que são Como se distinguem

Leia mais

Introdução à Programação. João Manuel R. S. Tavares

Introdução à Programação. João Manuel R. S. Tavares Introdução à Programação João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de

Leia mais

MATLAB. Programação básica

MATLAB. Programação básica MATLAB Programação básica Tipo de dados logical Podem ter valores true ou false. Dados do tipo lógico podem ser utilizados com valores numéricos. São convertidos nos valores 0 e 1. Operadores relacionais

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 carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada

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

Programação de Computadores:

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 lmarti@ic.uff.br - http://lmarti.com Seis Camadas Problema

Leia mais

Programação Introduçã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,

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

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação 1 Algoritmo Prof. Anderson Almeida Ferreira Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação Desenvolvimento de programas 2 Análise do problema Desenvolvimento

Leia mais

Introdução ao Fortran 90-4

Introdução ao Fortran 90-4 Introdução ao Fortran 90-4 Departamento de Física UFPel Controles de Fluxo de Execução Definição Estruturas (ou blocos) de programação que permitem controlar o fluxo de execução de um programa, além da

Leia mais

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES LINGUAGEM C: VARIÁVEIS E EXPRESSÕES Prof. André Backes LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina Computador entende apenas pulsos elétricos Presença ou não de pulso 1 ou 0 Tudo no computador deve

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

Puca Huachi Vaz Penna

Puca Huachi Vaz Penna BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca puca@iceb.ufop.br Aula 2

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

Material Didático Unificado.

Material Didático Unificado. Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

TÉCNICO DE INFORMÁTICA - SISTEMAS

TÉCNICO DE INFORMÁTICA - SISTEMAS 782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar

Leia mais

Portugol. Tiago Alves de Oliveira

Portugol. Tiago Alves de Oliveira Portugol Tiago Alves de Oliveira Revisando Algoritmo: Sequência finita de passos que levam à execução de uma tarefa Claro e preciso. Ex. somar dois números Algoritmo precisa seguir uma sequência lógica

Leia mais

Disciplina: Introdução à Engenharia da Computação

Disciplina: Introdução à Engenharia da Computação Colegiado de Engenharia de Computação Disciplina: Introdução à Engenharia da Computação Aula 07 (semestre 2011.2) Prof. Rosalvo Ferreira de Oliveira Neto, M.Sc. rosalvo.oliveira@univasf.edu.br 2 Representação

Leia mais

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701 www.decom.ufop.br/red AULA TEÓRICA 02 1 Prof. Marcelo Luiz Silva Red CONTEÚDOS DA AULA

Leia mais

Conhecendo a Linguagem de Programação C

Conhecendo a Linguagem de Programação C Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como

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

Aula teórica 7. Preparado por eng.tatiana Kovalenko

Aula teórica 7. Preparado por eng.tatiana Kovalenko Aula teórica 7 Tema 7. Introdução a Programação Ø Linguagens de Programação Ø LP Java ØEstrutura de um programa em Java ØIdentificadores, variáveis e constantes. ØTipos de dados básicos Preparado por eng.tatiana

Leia mais

UNIVERSIDADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO

UNIVERSIDADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO Plano de Ensino Curso 1604B Bacharelado em Física de Materiais Ênfase Identificação Disciplina - Optativa 0004214A Física Computacional I Docente(s) Francisco Carlos Lavarda Unidade Faculdade de Ciências

Leia mais

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Introdução à Programação em C Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI Linguagem C Criada em 1972 para uso no LINUX; Sintaxe base para diversas outras (Java, JavaScript, PHP, C++,

Leia mais

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2013-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos

Leia mais

Capítulo 7. Expressões e Sentenças de Atribuição

Capítulo 7. Expressões e Sentenças de Atribuição Capítulo 7 Expressões e Sentenças de Atribuição Introdução Expressões são os meios fundamentais de especificar computações em uma linguagem de programação Para entender a avaliação de expressões, é necessário

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

Roteiro para Aula 1 de laboratório. 1) Mostrar estrutura básica de um código em Fortran. algoritmo. program nome_da_codificacao.

Roteiro para Aula 1 de laboratório. 1) Mostrar estrutura básica de um código em Fortran. algoritmo. program nome_da_codificacao. Universidade do Estado do Rio de Janeiro Instituto de Física Armando Dias Tavares Departamento de Física Aplicada e Termodinâmica Laboratório de Física Computacional/IF Roteiro para Aula 1 de laboratório

Leia mais

Introdução à Programação em C Input / Output

Introdução à Programação em C Input / Output Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then

Leia mais

APONTAMENTOS DE PASCAL

APONTAMENTOS DE PASCAL APONTAMENTOS DE PASCAL PROGRAMAÇÃO DE COMPUTADORES 1º ANO DA LICENCIATURA EM ENGENHARIA MECÂNICA 2000 Luisa Costa Sousa 1 ÍNDICE: 1 INTRODUÇÃO 3 1.1 A estrutura do algoritmo e do respectivo programa 4

Leia mais

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Programação de Computadores I BCC701 www.decom.ufop.br/moodle Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada

Leia mais

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

Leia mais

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa: Algoritmos Algoritmos Leandro Tonietto Unisinos ltonietto@unisinos.br http://www.inf.unisinos.br/~ltonietto/inf/pg1/algoritmosi_java.pdf Mar-2008 Possuem sintaxe flexível e são mais úteis para descrição

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.2. Estrutura de Programas e Representação

Leia mais

Câmpus de Bauru Plano de Ensino Curso Ênfase Identificação Disciplina Docente(s) Unidade Departamento Créditos Carga Horária Seriação ideal

Câmpus de Bauru Plano de Ensino Curso Ênfase Identificação Disciplina Docente(s) Unidade Departamento Créditos Carga Horária Seriação ideal Curso 1605B - Bacharelado em Física de Materiais Ênfase Identificação Disciplina 0004214A - Física Computacional I Docente(s) Francisco Carlos Lavarda Unidade Faculdade de Ciências Departamento Departamento

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Program João Manuel R. S. Tavares Sumário 1. Ciclo de desenvolvimento de um programa; 2. Descrição de algoritmos; 3. Desenvolvimento modular de programas; 4. Estruturas de controlo de um programa.

Leia mais

Informática I. Aula 2. Aula 2-04/09/2006 1

Informática I. Aula 2.  Aula 2-04/09/2006 1 Informática I Aula 2 http://www.ic.uff.br/~bianca/informatica1/ Aula 2-04/09/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação

Leia mais

Linguagens de Programação Aula 13

Linguagens de Programação Aula 13 Linguagens de Programação Aula 13 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Suporte para a programação orientada a objetos 2 Na aula de hoje Programação Funcional Linguagem Haskell 3 Roteiro

Leia mais

Aula 4: Introdução à Linguagem C++

Aula 4: Introdução à Linguagem C++ CI208 - Programação de Computadores Aula 4: Introdução à Linguagem C++ Prof. MSc. Diego Roberto Antunes diegor@inf.ufpr.br www.inf.ufpr.br/diegor Universidade Federal do Paraná Setor de Ciências Exatas

Leia mais

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível.

Existem três categorias principais de linguagem de programação: linguagem de máquina, linguagens assembly e linguagens de alto nível. Aula 3 SOFTWARE (programas) Um programa (software) consiste em uma sequência de instruções escritas numa linguagem precisa chamada linguagem de programação. Estas instruções são traduzidas em um compilador,

Leia mais

CONCEITOS DE ALGORITMOS

CONCEITOS DE ALGORITMOS CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são

Leia mais

Aula 12- Variáveis e valores reais

Aula 12- Variáveis e valores reais Aula 12- Variáveis e valores reais Até agora todos os nossos problemas continham apenas valores inteiros e portanto variáveis do tipo int. Para resolver problemas que usam valores com parte fracionária,

Leia mais

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK)

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK) AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK) Ø LP Java. Estrutura de um programa em Java. Ø Conjunto de caracteres utilizado. Ø Identificadores. Ø Variáveis e constantes. Ø Tipos

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

11 - Estrutura de um programa em C

11 - Estrutura de um programa em C 11 - Estrutura de um programa em C directivas para o compilador { main ( ) declarações instruções } -É possível utilizar comentários, exemplo: /* Comentário */ que não são traduzidos pelo compilador, pois

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c

Leia mais

Aula 03 - Introdução ao Scilab (p2)

Aula 03 - Introdução ao Scilab (p2) BCC701- Programação de Computadores I Aula 03 - Introdução ao Scilab (p2) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01 DECOM

Leia mais

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À ORGANIZAÇÃO PARA ENGENHARIA DE COMPUTADORES. Prof. Dr. Daniel Caetano

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À ORGANIZAÇÃO PARA ENGENHARIA DE COMPUTADORES. Prof. Dr. Daniel Caetano LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2018-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dispositivos

Leia mais

Linguagem de Programação C

Linguagem de Programação C Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem

Leia mais

Linguagem C. Eliane Pozzebon

Linguagem C. Eliane Pozzebon Linguagem C Eliane Pozzebon Material de Apoio de C Site da disciplina: http://www.univasf.edu.br/~eliane.pozzebon Slides de aulas Exercícios Dev-C++: um ambiente de programação interativo e gratuito para

Leia mais

CAPÍTULO 2 PROGRAMAÇÃO IMPERATIVA: a Linguagem Pascal

CAPÍTULO 2 PROGRAMAÇÃO IMPERATIVA: a Linguagem Pascal Métodos de Programação I Departamento de Matemática, FCTUC 16 CAPÍTULO 2 PROGRAMAÇÃO IMPERATIVA: a Linguagem Pascal 2.1 Programação: Conceitos Fundamentais 2.1.1 Fases de construção de um programa executável

Leia mais

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base

MATLAB. Programação básica. Abordagem topo-base. Início. Definição das. Divisão em Sub-problemas. Divisão em Sub-problemas. Abordagem topo-base MATLAB Programação básica Abordagem topo-base Início Definição Definição do do problema problema Definição das entradas Definição entradas e das e saídas saídas Projecto Projecto do do algoritmo algoritmo

Leia mais

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Profa Rosana Braga 1º semestre de 2010 1 Arquivo-FONTE /*******************************/ /* Primeiro exemplo arq exemplo1.c

Leia mais

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE Professora: Isabela C. Damke isabeladamke@hotmail.com Linguagem de Programação Uma linguagem de programação é um conjunto de símbolos (

Leia mais

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se

Leia mais

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 Elementos Básicos Tipos de dados Dados e seus tipos: Computadores lidam com diversos tipos de dados: numéricos,

Leia mais

Introdução ao Fortran 90

Introdução ao Fortran 90 Introdução ao Fortran 90 Departamento de Física UFPel Pré-História 1943-1953: Computador com Programa Fixo ENIAC (Electronic Numerical Integrator and Computer) Início do Projeto: 1943 Projeto Completo:

Leia mais

ALGORITMOS AULA 2. Profª Amanda Gondim

ALGORITMOS AULA 2. Profª Amanda Gondim ALGORITMOS AULA 2 Profª Amanda Gondim LINEARIZAÇÃO DE EXPRESSÕES Para a construção de algoritmos que realizam cálculo matemáticos, todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas

Leia mais

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18

1.2 OPERAÇÕES BÁSICAS EM ALGORITMOS E PROGRAMAS 18 ÍNDICE MÓDULO 1 INTRODUÇÃO À ALGORITMIA 11 1.1 PROGRAMAS E ALGORITMOS 12 Fases da programação 12 Algoritmos e algoritmia 13 Algoritmos em linguagem informal, pseudocódigo e fluxogramas 14 Símbolos utilizados

Leia mais

CES-10 Introdução à Computação. Prof. Paulo André IEC - ITA

CES-10 Introdução à Computação. Prof. Paulo André IEC - ITA CES-10 Prof. Paulo André Estrutura do Curso Conceitos Básicos de Programação Algoritmos Estruturas de Controle Comandos de Entrada e Saída e Manipulação de Arquivos Rotinas, Variáveis Estruturadas e Ponteiros

Leia mais

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente. Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente. Com base numa condição Estruturas de decisão ou selecção Com base num selector ou de escolha múltipla Com contador

Leia mais

Material Didático Unificado.

Material Didático Unificado. Universidade Federal de Ouro Preto -UFOP Departamento de Computação - DECOM Comissão da Disciplina Programação de Computadores I CDPCI Programação de Computadores I BCC701 www.decom.ufop.br/bcc701 Material

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - º Semestre 205-206 Expressões Relacionais Estruturas de Selecção Simples Genéricas Aula Teórica 5 D.E.M. Área Científica de Controlo Automação e Informática Industrial

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

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014.

DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos. Apresentação. Computação e Programação (CP) 2013/2014. DECivil Departamento de Engenharia Civil, Arquitectura e Georrecursos Apresentação Computação e Programação (CP) 2013/2014 Aula 1 Objetivos Ficar a saber: funcionamento da unidade curricular (UC) Computação

Leia mais

Apresentação. Informação geral + Conceitos iniciais

Apresentação. Informação geral + Conceitos iniciais Apresentação Informação geral + Informação geral Página da cadeira Objectivos principais Compreender a importância dos algoritmos e dos programas de computador para a resolução de problemas em engenharia.

Leia mais

Conceitos Básicos de Programação

Conceitos Básicos de Programação BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de

Leia mais

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica 13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física

Leia mais

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage. Introdução à Programação

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage. Introdução à Programação Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage Introdução à Programação Construção de Algoritmos Algoritmo é uma seqüência finita de ações que descrevem como um problema

Leia mais

Comandos e Construtos de Controle de Fluxo

Comandos e Construtos de Controle de Fluxo Capítulo 5 Comandos e Construtos de Controle de Fluxo Nos capítulos anteriores foi descrito como comandos de atribuição devem ser escritos e como estes podem ser ordenados um após o outro para formar uma

Leia mais

Computação e Programação

Computação e Programação Computação e Programação MEMec, LEAN - 1º Semestre 2015-2016 Aula Teórica 9 Abordagem ao projecto de programas s, Abordagem Top-Down, Modularidade Processo de Desenvolvimento Tipos de Erros e Casos de

Leia mais