Introdução à Programação
|
|
- Felipe Bonilha Castanho
- 6 Há anos
- Visualizações:
Transcrição
1 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 in it. Comment: This EPS picture will print to a PostScript printer, but not to other types of printers. Notas de apoio à disciplina de Introdução à Programação 2001/2002 (Lic. Eng. Mecânica - 1º ano) João Miguel da Costa Sousa João Miguel C. Sousa GCAR, DEM, IST 2 Informação geral Programa 1 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 1 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 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 1 Página Web: João Miguel C. Sousa GCAR, DEM, IST 3 João Miguel C. Sousa GCAR, DEM, IST 4 1
2 Introdução à Computação Máquinas de computação 1 Sistemas de computação mecanização de operações (procedimentos) armazenamento de programas e dados 1 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, Hardware: componentes físicos 1 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 João Miguel C. Sousa GCAR, DEM, IST 6 Programas Computador 1 Software - programas utilizados pelo computador 1 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 1 Linguagens de alto nível - Fortran, Pascal, BASIC, Lisp, C++, Java, etc. 1 Programa fonte - programa escrito em linguagem de alto nível 1 Programa objecto - tradução do programa de alto nível para linguagem máquina usando um compilador. 1 FORTRAN - FORmula TRANslator 1 Sistema composto por componentes com funções diferentes a trabalhar para um objectivo comum 1 Componentes principais CPU - Central Processing Unit 1 Unidade de controlo 1 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. Aplicações Sistema Operativo Drivers João Miguel C. Sousa GCAR, DEM, IST 7 João Miguel C. Sousa GCAR, DEM, IST 8 2
3 Organização da memória 1 Sistema binário - 0,1 bits (binary digits) 1 byte - conjunto de 8 bits. Medida da memória em bytes. 1K = 2 10 =1024 bytes. 1 megabyte = 1024 K = bytes. 1 word - conjunto de bytes igual ao usado nos registos do CPU. 16, 32, 64 bits 1 address - endereço associado a cada word. 1 Memória guarda instruções dos programas a serem executadas 1 Linguagem assembly 1 Assembler - traduz assembly para código máquina. Programa de computador 1 Conjunto de instruções a seguir para resolver um dado problema 1 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 9 João Miguel C. Sousa GCAR, DEM, IST 10 Algoritmo Abstracção e abordagem topo-base 2 Projecto do algoritmo. 1 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. 1 Tem duas partes: 1 Descrição dos objectos a manipular. ' Exemplo 1 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. 1 Refinamento do algoritmo ao detalhe necessário 1 Abstracção - Descrição de uma dada entidade descrevendo apenas os aspectos relevantes para o objectivo, desprezando os pormenores. 1 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. 1 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. 1 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 11 João Miguel C. Sousa GCAR, DEM, IST 12 3
4 Programa: Radioactividade Algoritmo para problema de radioactividade 1 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. 1 Entradas: Uma dada QuantidadeInicial da substância radioactiva, a sua MeiaVida, e o período de Tempo em dias. 1 Saída: QuantidadeRestante. 1 Recebe QuantidadeInicial, MeiaVida e Tempo. 2 Calcula QuantidadeRestante = QuantidadeInicial * (0.5) ** (Tempo / MeiaVida) 3 Retorna a QuantidadeRestante. 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 13 João Miguel C. Sousa GCAR, DEM, IST 14 Programa: Radioactividade (3) Programação 1 Execução e testes - Verificar se o algoritmo e o programa estão correctos. 1 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 1 Exemplos: 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 1 Análise do problema Descrição das entradas Descrição das saídas 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 1 Desenvolvimento da solução Elaboração do algortimo 1 Selecção das estruturas de dados 1 Descrição das acções a efectuar Sequenciação Selecção Repetição João Miguel C. Sousa GCAR, DEM, IST 15 João Miguel C. Sousa GCAR, DEM, IST 16 4
5 Programação (cont.) Estilo de programação 1 Desenvolvimento da solução (cont.) Análise topo-base - divisão do problema em sub-problemas mais simples. Programa é dividido em módulos. 1 Codificação do programa Desenvolvimento de código em Fortran 90 1 Variáveis - devem começar por uma letra e seguidas por 30 letras, números ou underscores. 1 Tipos - tipo de valores que as variáveis podem ter. Ex: REAL, INTEGER, etc. 1 Operações -*, /, **, etc. 1 Atribuição - o sinal = atribui o valor da expressão à variável que está à esquerda. 1 Input/Output -READ, PRINT, WRITE, etc. 1 Comentários - símbolo Estilo de programação - programas devem ser correctos, legíveis e perceptíveis. 1 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. 1 Documentação cuidada Documentação inicial Comentários para explicar partes importantes Identificadores com um significado claro 1 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 17 João Miguel C. Sousa GCAR, DEM, IST 18 Execução e testes Manutenção 1 Programa deve ser correcto. 1 Sintaxe - define qual a linguagem correcta da linguagem. Erros de sintaxe são detectados pelo compilador sendo relativamente fáceis de corrigir. 1 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. 1 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 Para isto é necessário efectuar a documentação externa, que contém: Documentação para utilizadores 1 descrição do que o programa faz 1 descrição do processo de utilização do programa 1 descrição da informação produzida 1 descrição das limitações do programa Documentação técnica 1 descrição das estruturas de informação e das principais variáveis e constantes 1 descrição do algoritmo 1 descrição da estrutura do programa incluindo os principais sub-programas e sua interligação João Miguel C. Sousa GCAR, DEM, IST 19 João Miguel C. Sousa GCAR, DEM, IST 20 5
6 Introdução ao Fortran Tipos de dados 1 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 PROGRAMnome_de_programa 1 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 21 João Miguel C. Sousa GCAR, DEM, IST 22 Tipos de dados e Identificadores Variáveis 1 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 1 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 1 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 1 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 23 João Miguel C. Sousa GCAR, DEM, IST 24 6
7 Variáveis (cont.) Constantes 1 Instrução IMPLICIT NONE Cancela a convenção implícita do Fortran e deve ser sempre incluída na zona de especificações. 1 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 = Atributo PARAMETER Constantes que aparecem repetidas vezes num programa, tal como pi. Declaração de constantes especificação_do_tipo, PARAMETER :: lista 1 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 25 João Miguel C. Sousa GCAR, DEM, IST 26 Operadores aritméticos Operadores aritméticos (cont.) 1 Exemplos: + Adição - Subtracção * Multiplicação / Divisão ** Exponenciação 9.0 / / 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 1 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 1 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 7
8 Funções intrínsecas 1 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)) 1 Outras funções: ABS, SIN, COS, EXP, INT, FLOOR, LOG, REAL, INT, etc. Instrução de atribuição variavel = expressao 1 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 29 João Miguel C. Sousa GCAR, DEM, IST 30 Atribuição (cont.) Atribuição de cadeia de caracteres CoordenadaX 5.23 CoordenadaY 5.0 Numero 17 Termo 7 CoordenadaX = 2.0 * CoordenadaX CoordenadaX CoordenadaY 5.0 Numero 17 Termo 7 1 Como se pode verificar, a memória foi actualizada com o novo valor atribuído a CoordenadaX. O valor antes atribuído perdeu-se & Exemplo: CHARACTER(5) :: String, Aumentada*10, Cortada String = alpha Aumentada = particula Cortada = temperatura 1 Atribuição pelo Fortran: String alpha Aumentada particula_ Cortada tempe Inteiro = Real / 2.0 Má programação Inteiro = INT(Real / 2.0) 1 A = B é equivalente a 1 B = A? João Miguel C. Sousa GCAR, DEM, IST 31 João Miguel C. Sousa GCAR, DEM, IST 32 8
9 Troca e somatório Operações de Entrada e Saída 1 Troca de valor entre duas variáveis INTEGER :: Valor1, Valor2, Auxiliar Auxiliar = Valor1 Valor1 = Valor2 Valor2 = Auxiliar 1 Somatório REAL :: Somatorio, Real Somatorio = Somatorio + Real 1 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 1 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 33 João Miguel C. Sousa GCAR, DEM, IST 34 Operações de Entrada Operações de Entrada (cont.) 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. & 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 35 João Miguel C. Sousa GCAR, DEM, IST 36 9
10 Programa Projectil Resultados obtidos 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 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 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 João Miguel C. Sousa GCAR, DEM, IST 38 Entrada/Saída com ficheiros Erros Aritméticos 1 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 1 Números reais são guardados em memória com mantissa e expoente: mantissa: 24 bits expoente: 8 bits Quantidade de números finita Nem todos os números são representados 1 Erros de overflow e underflow m e 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 39 João Miguel C. Sousa GCAR, DEM, IST 40 10
11 Erros de arredondamento 1 Representação de números é aproximada Reais não são representados exactamente & Exemplo: equação que retorna sempre 1: PROGRAM Demo_1 a f 2 2 A + B 2AB B 2 A 2 A = = 1 2 A Estruturas de Selecção 1 Estruturação de controlo em programação Sequenciação Selecção Repetição 1 Sequenciação 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 João Miguel C. Sousa GCAR, DEM, IST 42 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 Expressões lógicas 1 Podem ser simples ou compostas 1 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 1 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 11
12 Expressões lógicas (cont.) Estruturas de selecção 1 Avaliação de caracteres Cada carácter tem um número de ordem associado dados por um código (ASCII, EBCDIC) 1 Letras por ordem alfabética 1 Dígitos por ordem numérica caracteres_1 < caracteres_2 & Exemplos gato < vaca Junho > Julho cal > calado caløøø > calado 1 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 Construção IF (forma simples) IF (expressao_logica) THEN sequencia_instrucoes A sequencia_instrucoes só é executada se a expressao_logica for verdadeira. & Exemplo IF (X >= 0) THEN Y = Z * X Z = SQRT(X) Instrução IF IF (expressao_logica) THEN instrucao João Miguel C. Sousa GCAR, DEM, IST 45 João Miguel C. Sousa GCAR, DEM, IST 46 Construção IF Exemplo: Equações Quadráticas Construção IF (forma geral) IF (expressao_logica) THEN sequencia_instrucoes1 ELSE sequencia_instrucoes2 A sequencia_instrucoes1 é avaliada se a expressao_logica for verdadeira. Caso contrário, são avaliadas as instruções em sequencia_instrucoes2 Algoritmo 1 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. 1 Entradas: Os coeficientes A, B e C. 1 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 47 João Miguel C. Sousa GCAR, DEM, IST 48 12
13 Programa: Equações quadráticas (1) Programa: Equações quadráticas (2) 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 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 PROGRAM Equacoes_quadraticas 1 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 49 João Miguel C. Sousa GCAR, DEM, IST 50 Construção de IFs encadeados Construção IF-ELSE IF & Exemplo x, 2 f ( x) = x, 1, x 0 0 < x < 1 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 = No caso de haver mais alternativas, existe uma estrutura própria para estes casos: Construção IF-ELSE IF 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 João Miguel C. Sousa GCAR, DEM, IST 51 João Miguel C. Sousa GCAR, DEM, IST 52 13
14 Exemplo: Índice de poluição Programa: Índice de poluição 1 (1) Algoritmo 1 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. 1 Entradas: Os níveis Nivel_1, Nivel_2 e Nivel_3. 1 Constantes: Os limites LimiteInferior e Limite Superior. 1 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 PROGRAM Indice_Poluicao 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 Programa: Índice de poluição 1 (2) Construção CASE 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 PROGRAM Indice_Poluicao1 1 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 Construção CASE 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 1 Cada lista lista_marcas_i pode ter as formas: valor valor_1 : valor_2 valor_1 : : valor_2 1 Pode incluir-se o caso CASE DEFAULT João Miguel C. Sousa GCAR, DEM, IST 56 14
15 Exemplo CASE Programa: Índice de poluição 2 (1) 1 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 PROGRAM Indice_Poluicao 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 57 João Miguel C. Sousa GCAR, DEM, IST 58 Programa: Índice de poluição 2 (2) Dados do tipo LOGICAL 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 1 Os resultados são exactamente os mesmos. 1 Constantes do tipo lógico em Fortran:.TRUE..FALSE. 1 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 59 João Miguel C. Sousa GCAR, DEM, IST 60 15
16 Estruturas de Repetição Ciclo DO controlado por contador 1 Ciclos (loops) Repetição controlada por contador Repetição controlada por expressão lógica Ciclo DO controlado por contador DO variavel_controlo = & valor_inicial, limite, passo sequencia_instrucoes Este ciclo implementa repetições onde o número desejado é conhecido antecipadamente. 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 João Miguel C. Sousa GCAR, DEM, IST 61 João Miguel C. Sousa GCAR, DEM, IST 62 Exemplos ciclo DO com contador Programa: Soma de inteiros Saída do exemplo 1: & Exemplo 2 DO Numero = 7, 1, -1 WRITE (*, *) Numero, Numero ** 2 Saída do exemplo 2: 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 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 63 João Miguel C. Sousa GCAR, DEM, IST 64 16
17 Programa: Tabela de multiplicação Tabela de multiplicação: resultados 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 PROGRAM Tabela_de_Multiplicacao & Resultado obtido: Insira os ultimos valores dos dois numeros: 4, 4 m n m * n =========== João Miguel C. Sousa GCAR, DEM, IST 65 João Miguel C. Sousa GCAR, DEM, IST 66 Construção DO-EXIT Ciclo DO-EXIT DO sequencia_instrucoes_1 IF (expressao_logica) EXIT sequencia_instrucoes_2 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 Algoritmo Exemplo: Somatório 1 Algoritmo para encontrar o Numero inteiro positivo mais pequeno para o qual a soma Numero é maior que um dado valor Limite especificado. 1 Entradas: Um valor inteiro Limite. 1 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 67 João Miguel C. Sousa GCAR, DEM, IST 68 17
18 Programa: Somatório Somatório: Resultados 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 & 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 Imprime os resultados WRITE (*, *) 1 + +, Numero, =, Soma, >, Limite END PROGRAM Soma_Inteiros João Miguel C. Sousa GCAR, DEM, IST 69 João Miguel C. Sousa GCAR, DEM, IST 70 Ciclos de entrada de dados Ex: Conversão de Temperaturas 1 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. 1 Para saber que os dados acabaram usam-se marcas (flag) ou IOSTAT=. 1 Os testes podem igualmente ser efectuados apenas no fim fo ciclo, garantindo que este é executado pelo menos uma vez. Algoritmo 1 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). 1 Entradas: Temperaturas em Celsius. Resposta do utlizador 1 Saídas: Temperaturas em graus Fahrenheit. 1 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 71 João Miguel C. Sousa GCAR, DEM, IST 72 18
19 Prog: Conversão Temperaturas (1) Prog: Conversão Temperaturas (2) 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 Pergunta ao utilizador se existem mais dados WRITE (*, *) WRITE (*, *) Existem mais temperaturas a converter (S & &ou N)? READ (*, *) Resposta IF (Resposta == N ) EXIT 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 73 João Miguel C. Sousa GCAR, DEM, IST 74 Instrução CYCLE Entrada / Saída 1 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 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 1 Tipos de entrada/saída em Fortran direccionado para listas formatada Instrução PRINT PRINT especificacao_formato, lista_saida 1 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. 1 A lista_saida é uma expressão separada por vírgulas, ou é vazia. João Miguel C. Sousa GCAR, DEM, IST 75 João Miguel C. Sousa GCAR, DEM, IST 76 19
20 Formatação de saída Instrução FORMAT rotulo FORMAT (lista_descritores) 1 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) 1 Estas instruções imprimem as variáveis Numero e Temperatura da seguinte forma: Descritores de formato 1 Caracteres de controlo Carácter de Efeito controlo 1X ou 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. 1 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 77 João Miguel C. Sousa GCAR, DEM, IST 78 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) 1 produz o seguinte: & Exemplo 2: PRINT (1X, 4I3), Numero, Numero - 3, L, Kapa 1 retorna: 03 0****** Formatação de reais 1 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) 1 produz o seguinte: se (1X, 2I10, 3F10.2); João Miguel C. Sousa GCAR, DEM, IST 79 João Miguel C. Sousa GCAR, DEM, IST 80 20
21 Formatação de reais (cont.) 1 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 1 produz o seguinte: E E E E Formatação de reais (concl.) 1 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) 1 mantissa entre 1 e 10 EN - descritor usado em engenharia 1 mantissa entre 1 e 1000 & Exemplos: PRINT (1X, 2ES13.5, ES12.4, ES13.4), A, B, C, D 1 produz: E E E E PRINT (1X, 2EN13.4, EN12.4, EN13.4), A, B, C, D 1 produz: E E E E João Miguel C. Sousa GCAR, DEM, IST 81 João Miguel C. Sousa GCAR, DEM, IST 82 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) 1 produz: X = 0.30 Y = & Exemplo 2: PRINT 71, Media e igual a, Media_X, & e tem a variancia, Variancia Formas: Descritores de posição X e T 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) 1 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 83 João Miguel C. Sousa GCAR, DEM, IST 84 21
22 Repetição e descritor / 1 Os parêntesis, tal como r, são indicadores de repetição 1 A especificação de formato: (1X, A, F6.2, A, F6.2) pode ser escrita de forma mais compacta: (1X, 2(A, F6.2)) 1 Descritor / - é usado para imprimir em várias linhas com diferentes formatos & Exemplo: INTEGER :: N = 5173, M = 7623 REAL :: A = 617.2, B = (...) PRINT 88, Valores, N, A, M, B 88 FORMAT (1X, A, 2/, 1X, 2(I10 F10.2)) 1 produz: Valores Formatação de entrada Instrução READ READ especificacao_formato, lista_entrada 1 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. 1 A lista_entrada é uma expressão separada por vírgulas, ou é vazia. 1 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 85 João Miguel C. Sousa GCAR, DEM, IST 86 Descritores do formato de entrada 1 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. 1 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. 1 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 1 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. Forma geral de saída Instrução WRITE WRITE (lista_controlo) lista_saida 1 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. 1 Imprime os valores na lista_saida usando as especificações dadas na lista_controlo. 1 Especificação de unidade é definida como: UNIT = especificador_unidade, ou especificador_unidade João Miguel C. Sousa GCAR, DEM, IST 87 João Miguel C. Sousa GCAR, DEM, IST 88 22
23 Instrução WRITE (concl.) 1 Especificação de formato é definido como: FMT = especificador_formato, ou especificador_formato 1 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) Forma geral de entrada Instrução READ generalizada 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. 1 Lê os valores da lista_entrada usando as especificações dadas na lista_controlo. 1 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 89 João Miguel C. Sousa GCAR, DEM, IST 90 Processamento de ficheiros Instrução OPEN Para grande quantidade de dados de entrada/saída. 1 Abertura de ficheiros Instrução OPEN OPEN (lista_abertura) a lista_abertura pode incluir: 1 um especificador de unidade do tipo inteiro, 2 instrução FILE =, fornece o nome do ficheiro a abrir, 3 instrução STATUS =, especifica o estado do ficheiro, 4 instrução ACTION =, especifica se o ficheiro é de leitura, escrita, ou ambos, 5 instrução POSITION =, posiciona o ficheiro, 6 instrução IOSTAT =, indicando se o ficheiro foi ou não aberto, etc. 1 Abre um ficheiro associado a um dado número de unidade, para operações de entrada/saída. A instrução FILE = tem a forma: 1 FILE = expressao_caracteres STATUS = expressao_caracteres, pode ser dada por: OLD NEW REPLACE ACTION = accao_entrada-saida, pode ser dada por: READ WRITE READWRITE POSITION = expressao_caracteres, pode ser dada por: REWIND APPEND ASIS IOSTAT = estado_variável João Miguel C. Sousa GCAR, DEM, IST 91 João Miguel C. Sousa GCAR, DEM, IST 92 23
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 maisProgramaçã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 mais2.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 maisIntroduçã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 maisUniversidade 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 maisCFAC: 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 maisProgramaçã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 maisApostila 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 maisIntroduçã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 maisMé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 maisIntroduçã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 maisAmbiente 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 maisResoluçã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 mais3. 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 maisPascal. -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 maisObjectivos. 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 maisTÉ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 maisAula 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 maisProgramaçã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 maisLINGUAGEM 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 maisProgramaçã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 maisAPONTAMENTOS 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 maisIntroduçã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 maisCONCEITOS 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 maisLinguagens 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 maisRoteiro 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 maisLÓ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 maisAULA 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 mais1.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 maisALGORITMOS 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 maisAlgoritmos. 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 maisMATLAB. 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 maisGFM015 Introdução à Computação. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM
GFM015 Introdução à Computação Plano de Curso e Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/ic UFU/FACOM Plano de Curso Ementa Noções básicas sobre os componentes de
Leia maisMé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 maisCapí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 maisAmbiente 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 maisCAPÍ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 maisCES-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 maisIntroduçã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 mais3. 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 maisAlgoritmos. 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 maisIntroduçã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 maisALGORITMOS 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 maisParadigmas de Linguagens
Paradigmas de Linguagens Aula 2: Tipos de dados Professora Sheila Cáceres Tipos de dados Dados são a matéria prima da computação junto com os programas. LPs precisam manipular dados. LPS utilizam os conceitos
Leia maisConceitos 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 maisLinguagem 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 maisLÓ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 maisMétodos Numéricos - Notas de Aula
Métodos Numéricos - Notas de Aula Prof a Olga Regina Bellon Junho 2007 1. Representação de números reais 1.1. Introdução Cálculo Numérico X Método Numérico CI202 - Métodos Numéricos 1 1. Representação
Leia maisIntrodução à Informática
Introdução à Informática Aula 10 http://www.ic.uff.br/~bianca/introinfo/ Aula 10-05/10/2007 1 Ementa Conceitos Básicos de Computação (Hardware, Software e Internet) Softwares Aplicativos Tutorial: Word
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Leia maisEstruturas 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 maisLinguagem 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 maisIteração e Pontos Fixos
Iteração e Pontos Fixos Iteração é um dos pontos chave da programação numérica. Iterar consiste em repetir uma mesma operação diversas vezes levando a uma aproximação cada vez melhor da solução exata.
Leia maisSequencial 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 maisTÉ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 maisVariá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 maisCompiladores. Análise Léxica
Compiladores Análise Léxica Cristiano Lehrer, M.Sc. Introdução (1/3) Análise léxica é a primeira fase do compilador. A função do analisador léxico, também denominado scanner, é: Fazer a leitura do programa
Leia maisInformá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 mais1.1 Etapas na solução de um problema. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante.
1. Computação numérica 1.1 Etapas na solução de um problema. 1.2 Notação algorítmica. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante. Algoritmos Numéricos Cap.1: Computaç~ao numérica Ed1.0 c 2001
Leia maisProgramação Estruturada
Algoritmos e Técnicas - Estruturas de Controle de Fluxo - Programação Estruturada Programação estruturada é a técnica de construir e formular algoritmos de uma forma sistemática. Utilizada para apresentar
Leia maisA Linguagem C. A forma de um programa em C
A Linguagem C Criada em 1972 por D. M. Ritchie e K. Thompson. Tornou-se uma das mais importantes e populares, principalmente pela portabilidade e flexibilidade. Foi projetada para o desenvolvimento de
Leia maisAlgoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4
Algoritmos e Estruturas de Dados I (DCC/003) 2013/1 Estruturas Básicas Aula Tópico 4 1 Problema 3 Exibir o maior número inteiro que pode ser representado no computador. 2 Qual o maior número inteiro? Para
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: Operadores relacionais e lógicos estruturas condicionais If... Else Switch Prof. Renato Pimentel 1 Operações relacionais Operações
Leia mais11 - 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 maisFaculdade 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 maisA palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,
A palavra ALGORITMO teve origem com um Matemático Persa, al Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah, ou a ciência das Equações que, em última análise suscitaram o desenvolvimento
Leia maisSistemas numéricos e a Representação Interna dos Dado no Computador
Sistemas numéricos e a Representação Interna dos Dado no Computador Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: http://www.inf.ufsc.br~silveira Material elaborado pelo prof
Leia maisArquitetura de Um Computador
Arquitetura de Um Computador José Costa Introdução à Arquitetura de Computadores Departamento de Engenharia Informática (DEI) Instituto Superior Técnico 2013-09-20 José Costa (DEI/IST) Arquitetura de Um
Leia maisAula 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 maisEstruturas de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números
Leia maisUniversidade 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 maisLinguagens de Programação Classificação
Classificação Classificação A proximidade que a linguagem de programação tem com a humana determina sua classe (o nível): Linguagem de máquina (primeira geração) Linguagem assembly - de montagem (segunda
Leia maisIntrodução ao Scilab. Comandos de entrada e saída de dados.
BCC701 Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência da Computação www.decom.ufop.br/bcc701 2012/01 Semana 02: Introdução ao Scilab. Comandos de entrada e saída
Leia maisCompilador de LP3 para C3E e P3
Compilador de LP3 para C3E e P3 Luís Gil 1 13 de Junho de 2005 1 estudante de Ciências Informáticas no Instituto Superior Técnico 1 Introdução Este relatório descreve a sintaxe e a semântica da Linguagem
Leia maisTeoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.
Teoria da Computação e Algoritmos Introdução à Linguagem Pascal 1 Estrutura de um programa INÍCIO FIM. PROGRAM END.
Leia maisProgramação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.
Programação Folha Prática 5 Lab. 5 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 5 5ª semana ESTRUTURAS
Leia maisErros, Precisão Numérica e Ponto Flutuante
Capítulo 3 Erros, Precisão Numérica e Ponto Flutuante No capítulo anterior introduzimos o conceito de variável em programação. Uma variável é basicamente um nome usado para se referir a algum conteúdo
Leia maisFACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis
Variável, na Matemática, é um termo utilizado em substituição de outro, normalmente, desconhecido. É utilizado para representar um número ou um conjunto. No contexto da programação de computadores, uma
Leia maisRESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:
Computação e Programação (2009/2010-1º Semestre) 1º Teste MEMec - LEAN (11/11/2009) DURAÇÃO: 1h30m RESOLUÇÃO Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha,
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia maisLinguagem 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 maisMaterial Didático Proposto
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas da Disciplina BCC701 CAP-BCC701 www.decom.ufop.br/bcc701 2014-1 Material
Leia maisProgramação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais
Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas da Disciplina BCC701 CAP-BCC701 www.decom.ufop.br/bcc701 2014-1 Material
Leia maisApresentação da ferramenta de programação. Comandos de entrada e saída. Prof. Alex Camargo
UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO Apresentação da ferramenta de programação. Comandos de entrada e saída Prof. Alex Camargo alexcamargoweb@gmail.com Linguagem C A linguagem
Leia mais#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
Leia maisMaterial Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.
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 maisAula 4 Introdução ao C
Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções
Leia maisAlgoritmos: Conceitos Fundamentais. Slides de autoria de Rosely Sanches e Simone Senger de Souza
Algoritmos: Conceitos Fundamentais Slides de autoria de Rosely Sanches e Simone Senger de Souza DADOS E EXPRESSÕES Uso da Informação Computador manipula informações contidas em sua memória. Classificadas
Leia maisLinguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Leia maisIntrodução à Programação
Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 2 Etapas para o desenvolvimento dum programa 1. Perceber o problema 2. Encontrar um procedimento algorítmico para o resolver. Estratégias:
Leia maisInformática I. Aula 9. Aula 9-17/05/2006 1
Informática I Aula 9 http://www.ic.uff.br/~bianca/informatica1/ Aula 9-17/05/2006 1 Ementa Histórico dos Computadores Noções de Hardware e Software Microprocessadores Sistemas Numéricos e Representação
Leia maisIntrodução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP. Aula 1 Introdução à Computação
Introdução à Computação para Engenharia MAC2166 Prof. Dr. Paulo Miranda IME-USP Aula 1 Introdução à Computação Eventos históricos: 1) Primeiro computador a válvulas, o Eletronic Numeric Integrator And
Leia maisESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2006/2007
ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2006/2007 TRABALHO PRÁTICO Nº
Leia maisConceitos Básicos Linguagem C
Conceitos Básicos Linguagem C PROF. MAURÍCIO A DIAS MACDIASPAE@GMAIL.COM 2 Método Método básico para construção de algoritmos 1. Compreender completamente o problema a ser resolvido, se possível dividindo
Leia maisLinguagem Pascal. Prof. Antonio Almeida de Barros Junior
Linguagem Pascal Prof. Antonio Almeida de Barros Junior 1 Linguagem Pascal Criada para ser uma ferramenta educacional (Década de 70); Prof. Niklaus Wirth (Universidade de Zurique); Blaise Pascal (Matemático
Leia maisCapí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 maisCapítulo 2 Operadores. A função scanf()
Capítulo 2 Operadores A função scanf() A função scanf() é outra das funções de E/S implementadas em todos os compiladores e nos permite ler dados formatados da entrada padrão (teclado). Sintaxe: scanf(
Leia maisVariáveis primitivas e Controle de fluxo
Variáveis primitivas e Controle de fluxo Material baseado na apostila FJ-11: Java e Orientação a Objetos do curso Caelum, Ensino e Inovação, disponível para download em http://www.caelum.com.br/apostilas/
Leia mais