Apàndice I

  • Uploaded by: Tiago Caetano
  • 0
  • 0
  • June 2020
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Apàndice I as PDF for free.

More details

  • Words: 2,778
  • Pages: 19
APÊNDICE

I

Codificação de Algoritmos em Linguagens de Programação: Pascal, Fortran e Modula-2

SUMÁRIO I.1 Conversão de algoritmos

I.1

I.2 Práticas de programação

CONVERSÃO DE ALGORITMOS Para converter um algoritmo escrito em linguagem natural em algumas das ferramentas de programação: diagramas de fluxo, diagramas N-S e pseudocódigo, poderão ser utilizadas as tabelas seguintes, que consideramos as equivalências correspondentes. Para sua correta conversão, deveremos buscar na coluna de instruções o elemento correspondente do algoritmo e nas seguintes colunas suas equivalentes ferramentas de programação.



.



V ← E / V = E

V ← E V = variável E = expressão (constante, variável ou expressão) ler lista de variáveis

Atribuição

Entrada de dados

ler lista ler lista de variáveisde variáveis

V ← E

Escrita de uma tabela de variáveis.

fim

algoritmo identificador

Diagrama N-S

ler lista de variáveis ler lista de variáveis

Escrevemos as variáveis e os tipos na tabela de variáveis juntamente com o diagrama de fluxo.

Modelo 1 (dentro do algoritmo na seção de declaração). var nome11, nome12, ...: tipo1; nome21, nome22...: tipo2 Modelo2. Descrição de variáveis e tipos na tabela de variáveis

fim

início

Declaração de variáveis



algoritmo identificador [seção de declaração de variáveis e constantes] início . . . fim

Estrutura do algoritmo

Diagrama de fluxo

Pseudocódigo

Instruções (ações)

Tabela I.1 Conversão de algoritmos em ferramentas de programação

mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

(Continua)

Pseudocódigo escrever lista de expressões

S1 S2 S3

. . . Sn

1. {fase descritiva do comentário} 2. {fase descritiva do comentário} ir_a etiqueta

Instruções (ações)

Saída de dados

Instrução combinada



Comentários



Bifurcação incondicional

AA

11 ir_a ir_aetiqueta etiqueta

Sn Sn

Sn Sn

fase descritiva do algoritmo

.. .. ..

S2 S2

S1 S1

escrever escrever lista variáveis escrever lista variáveis lista variáveis

Diagrama N-S

S1 S1

S1 S1

escrever lista variáveis

Diagrama de fluxo

Tabela I.1 Conversão de algoritmos em ferramentas de programação (cont.)

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm

(Continua)

Pseudocódigo

Modelo 1: se condição então S1 S2 . . Sn fim_se Modelo 2: se condição então S1 S2 . . Sn fim_se Modelo 3: se condição então S1

Modelo 1: se condição então S11 S12 . . S1n se não S21 S22 . . S2n fim_se Modelo 2: se condição então S1 se não S2 fim_se

Instruções (ações)

Seletiva alternativa simples

Seletiva alternativa dupla

S2 Sn

S2 Sn

Não

S21 S22 S2n

S11 S12 S1n

S11 S12 S1n

S2n

S22

S21

Sim Condição Sim Condição Não Não

Não S1

S1

Sim Condição Sim Condição

Diagrama de fluxo

Sn

S2

S2

Sn

S1

S1

Sim

Condição

*

Não

Condição

Diagrama N-S

Sim

S22 . . . S2n

S12 . . . S1n

S12 . . . S1n

S21

S11 S11

*

S2n

. . .

S22

S21

Condição Condição Sim Não

* Seta ou Branco * Seta ou Branco

Sim

Tabela I.1 Conversão de algoritmos em ferramentas de programação (cont.)

Não

Não

mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

(Continua)

conforme_seja expressão fazer

Seletiva alternativa múltipla E1:S11 S12 . . . S1n E2:S21 22 . . . S2n En:Sn1 Sn2 . . S1n em_outro­_caso Sx1 Sx2 . . Sxn fim_conforme

Pseudocódigo

Instruções (ações)

E1 E2 E3

E3

expresexpresE2 são são En

Em outro Em outro caso caso En

S1n S1nS2n S2nS3n S3nSnn SnnSxn Sxn

S11 S11S21 S21S31 S31Sn1 Sn1Sx1 Sx1 S12 S12S22 S22S32 S32Sn2 Sn2Sx2 Sx2

E1

Diagrama de fluxo

Tabela I.1 Conversão de algoritmos em ferramentas de programação (cont.)

S4n S4nSx1 Sx1

S4n S4n

S1n S1n S2n S2n

S11 S11 S21 S21 .. S22 .. S12 S12 S22 . .. . . .. . . .

Sxn Sxn Snn Snn

Sx1 Sx1 Sn1 Sn1 Sx2 Sx2 Sn2 Sn2 . . .. . . .. . . ..

E1 E1 E2 E2 . . . . . . En En Ex Ex

Modelo 2: 2: Modelo

expressão expressão E2 E2 S11 S11 Em Em E3 E3 S12 S12 outrooutro S21 S21 . S22 . S22 E4 E4 casocaso . . . S31 . S31 S41 S41Sx1 Sx1 . . . S32 . S32 . S42 . S42Sx2 Sx2 . . S1n S1n . .. . . . S2n S2n . .. . . . . . . . S3n S3n

E1 E1

Modelo Modelo 1: 1:

Diagrama N-S

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm

(Continua)

Pseudocódigo iterar S1 S2 . . sair_se condição . . S3 . . Sn fim_iterar

Instruções (ações)

repetitiva iterar

Sn Sn

S3 S3

Não Não

Sim Sim Condição Condição

S2 S2

S1 S1

Diagrama de fluxo

Modelo Modelo2: 2:

S1 S1 S2 S2 Não Não

Ações Ações

Sair_se Sair_secondição condição

Sn Sn

Sair Sair

Condição Condição

S3 S3

Sim Sim

iterar iterar

Modelo Modelo1: 1:

Diagrama N-S

repetir repetir

Tabela I.1 Conversão de algoritmos em ferramentas de programação (cont.)

mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

(Continua)

Pseudocódigo enquanto condição S1 S2 . . Sn fim_enquanto

repetir S1 S2 . . . Sn até_que condição

Instruções (ações)

repetitiva enquanto

repetitiva repetir

Sn

S2

S1

Não

NãoSim

Sim

Condição Condição

Sn

S2

S1

Modelo 1: Modelo 1:

S3 S3

S2 S2

S1 S1

Sim Sim

Não Não

Condição Condição

até_que condição até_que condição





enquanto condição enquanto condição

Diagrama N-S

repetir

Diagrama de fluxo

repetir

Conversão de algoritmos em ferramentas de programação (cont.)

repetir repetir

Tabela I.1

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm

(Continua)

S1 S2 . . Sn fim_desde Modelo 2: para V de Vi a Vf fazer S1 S2 . . Sn fim_para



S2

S1

V=Vf V=Vf Sim

S1

S2

Sn

S1

S2

Sn

Não

Não

V=Vf+xV=Vf+x

V>Vf V>Vf

Modelo Modelo 2: 2:

Não

Condição Condição V = Vf V = Vf Não Sim Sim

V ← Vi V+ ← x Vi + x

S2

S1

V← Vi V← Vi

Modelo Modelo 1: 1:

Modelo 1: desde V=Vi até Vf [incremento x] fazer

repetitivas desde

Diagrama de fluxo

Pseudocódigo

Instruções (ações)

Sim

Tabela I.1 Conversão de algoritmos em ferramentas de programação (cont.)

= Vi V = ViVaté Vfaté Vf



desdedesde

Diagrama N-S

mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

(Continua)

Sn

S2

S1

Repetir V=Vi Vf=x Modelo 4:

Sn

S2

S1

Não V=Vf+x

V=Vf

Modelo 3:

V>Vf

Sim

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm

início S1 S2 . . Sn fim



[sessão de declarações]

algoritmo identificador

Estrutura do algoritmo

Pseudocódigo

const nome = valor; type nome = tipo de dados; var nome, nome,...:tipo; procedure/function [definição do subprograma] begin S1 S2 . . . Sn . . . Sn end

program identificador (input-output)

Pascal

(declaração de variáveis e constantes) IMPLICIT CHARACTER PARAMETER (declaração de arrays) DIMENSION (declaração de funções) COMMON EQUIVALENCE EXTERNAL INTRINSIC (inicialização de variáveis) DATA (definição de funções de sentença) Instruções executáveis . . . END

PROGRAM identificador (opcional)

FORTRAN

Tabela I.2 Conversão de pseudocódigos em programas

END nomemódulo

<declaração de procedimentos> BEGIN <sentenças>

<lista de importar> <declaração de constantes> <declaração de tipo> <declaração de variáveis>

MODULE nomemódulo;

Modula-2

10mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

(Continua)

Pascal

Leitura de dados ler lista de variáveis

V ← E

Atribuição

read (lista de variáveis) readln (lista de variáveis)

V: = E

Declaração de variáveis var lista de nomes1: var lista nomes1: tipo 1 tipo1 lista de nomes2: lista nomes 2: tipo 2 tipo2

Pseudocódigo

READ (n, f) lista de variáveis n número unidade entrada f etiqueta sentença FORMAT READ (*,*) lista de variáveis READ f, lista

Read (c) ReadString (s) ReadInt (i) ReadReal (x) c: tipo CHAR i = integer s = tipo cadeia x = tipo real

V: = E

tipo é INTEGER REAL BOOLEAN CARDINAL BITSET CHAR

tipo é INTEGER REAL DOUBLE PRECISION LOGICAL COMPLEX CHARACTER * n (n, comprimento da cadeia)

V = E

VAR <lista de variáveis>: tipo

Modula-2

tipo lista de variáveis

FORTRAN

Tabela I.2 Conversão de pseudocódigos em programas (cont.)

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm11

(Continua)

1. Isto é um comentário 2. * isto é um comentário Nota: C ou * se escrevem na primeira coluna

1. IF lógico IF (condição) S IF (condição) GOTO etiqueta

1. {mensagem} 2. (*mensagem *)

1. if condição then begin S1 S2 . . Sn end 2. if condição then begin S1 S2 . . Sn end 3. if condição then se else S2

Comentários

Seletivas Alternativa simples se condição então S1 S2 . . Sn fim_se

2. IF de blocos IF condição THEN S1 S2 . . Sn END IF

WRITE (n, f) lista de expressões WRITE (*,*) lista de expressões WRITE f, lista de expressões PRINT f, lista de expressões

write (lista de expressões) writeln (lista de expressões)

Escrita de dados escrever lista de expressões

FORTRAN

Pascal

Pseudocódigo

Tabela I.2 Conversão de pseudocódigos em programas (cont.)

. . Sn END

IF condição THEN S1 S2

(*comentários*)

WriteReal (x, n) WriteLn

WriteInt (i, n)

WriteString (s)

Write (c)

Modula-2

12mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

(Continua)

1. if condição then S11 S12 . . S1n else begin S21 S22 . . S2n end

2. if condição then begin S11 S12 . . S1n end else begin S12 S22 . . S2n end



Pascal

se condição então S11 S12 se não S21 S22 fim_se

Alternativa dupla

Pseudocódigo

IF condição THEN S11 S12 . . S1n ELSE S21 S22 . . S2n ENDIF

FORTRAN

Tabela I.2 Conversão de pseudocódigos em programas (cont.)

IF condição THEN S11 S12 . . S1n ELSE S21 S22 . . S2n END

Modula-2

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm13

(Continua)

repeat S1 S2 . . Sn until condição 1. for v: = vi 2. for v: = vi 3. for v: = vi begin S1 S2 . . Sn end 4. for v: = vi begin S1 S2 . . Sn end

Notas: 1 e 3, incrementos positivos; 2 e 4, incrementos negativos

repetitiva (desde para) desde V = Vi até Vf [incremento x] fazer ... fim_desde



n CONTINUE

downto Vf do

n etiqueta de linha m1 valor inicial m2 valor final m3 incremento

DO n i = ml, m2, m3 . . .

to vf do S1 downto Vf do S1 to Vf do

FOR V: = Vi TO Vf [BY x] DO S1 S2 . . Sn end

REPEAT S1 S2 . . Sn UNTIL condição

END



repetitiva (repetir) repetir S1 S2 . . Sn fim_repetir

WHILE condição DO S1 S2 . . Sn

Modula-2



1. while condição do begin S1 S2 . . Sn end 2. while condição do S1

repetitiva (enquanto) enquanto S1 S2 . . Sn fim_enquanto

FORTRAN

Pascal

Pseudocódigo

Tabela I.2 Conversão de pseudocódigos em programas (cont.)

14mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

(Continua)

Pascal S11 S12 . . S1n while not condição do begin S21 S22 . . S2n S11 S12 . . end

Pseudocódigo

repetitiva iterar iterar S11 S12 . . Sn sair se condição S21 S22 . . S2n fim_iterar LOOP S1 S2 . .

UNTIL condição LOOP S11 S12 . . EXIT S21 S22 END



Modula-2



FORTRAN

Tabela I.2 Conversão de pseudocódigos em programas (cont). Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm15

16mmFundamentos de programação – Algoritmos, estruturas de dados e objetos

I.2

PRÁTICAS DE PROGRAMAÇÃO Exemplo I.1 Calcular o volume de um cilindro círculo Análise A fórmula do volume do cilindro é V = p · R² · H Variáveis de entrada: RAIO, ALTURA de tipo real Variáveis de saída: VOLUME de tipo real Constantes: π = PI = 3,141592 Algoritmo Os passos gerais do algoritmo são: início determinar os valores do raio R e altura H o volume é obtido com a expressão V = p * R2 * H calcular e escrever o valor de V fim

Pseudocódigo algoritmo volume {declaração de variáveis e constantes} var RAIO, ALTURA, VOLUME = real constante PI = 3,141592 início {leitura de dados} ler RAIO, ALTURA {processo} VOLUME → PI * RAIO * ALTURA {saída de dados} escrever VOLUME fim

Codificação em Visual BASIC 100 110 120 130 140 150 160 170 180 190 200 210 220

‘programa volume ‘cálculo do volume de um cilindro ‘ ‘declaração de variáveis DEFSNG RAIO, ALTURA, VOLUME ‘início das sentenças executáveis ‘entrada de dados PI = 3,141592 INPUT RAIO, ALTURA VOLUME = PI * RAIO ^ 2 * ALTURA ‘saída de dados PRINT ‘o volume é’, VOLUME END

Codificação em FORTRAN C

PROGRAM cilindro Calcular o volume de um cilindro INTEGER SAÍDA DATA ENTRADA, SAÍDA/5, 6/

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm17

DATA PI /3,141592/ READ (ENTRADA, 100) RAIO, ALTURA VOLUME = PI * RAIO * RAIO * ALTURA WRITE (SAÍDA, 200) VOLUME STOP 100 FORMAT (2 F8.0) 200 FORMAT (‘o volume é’, F8.2) END

NOTA: Os dispositivos físicos do teclado e tela são atribuídos aos números de dispositivos 5 e 6 respectivamente. Codificação em Pascal program CILINDRO (INPUT, OUTPUT) {calcular o volume de um cilindro} const PI = 3,141592 var RAIO, ALTURA, VOLUME: real begin {leitura de dados} read (RAIO, ALTURA) VOLUME: = PI * SQR (RAIO) * ALTURA write (‘o volume é’, VOLUME = 8:2) end {fim de CILINDROS}

Codificação em MODULA-2 MODULE cilindro {calcular o volume de um cilindro} FROM EasyInOut IMPORT ReadReal, WriteReal, WriteString; CONST PI = 3.14.1592 VAR Raio, Altura, Volume: REAL BEGIN ReadReal (Raio); ReadReal (Altura) Volume := PI * Raio * Raio * Altura WriteString (‘o volume é ’); WriteReal (Volume, 8,2) END cilindro

Exemplo I.2 Calcular a média aritmética de uma série indeterminada de números positivos Análise A média de uma série de números X1, X2..., Xn responde à fórmula: MÉDIA =

X1 + X2 + ... + Xn n

18mmFundamentos de programação – Algoritmos, estruturas de dados e objetos São necessários um somador que realize a soma dos números e um contador que conte o total de números: Variáveis de entrada X: real. Variáveis de saída MÉDIA: real. Variáveis intermédias N: inteira; SOMA: real. Consideremos como valor final de arquivo (FF) ou valor sentinela o número –99. Pseudocódigo algoritmo MÉDIA {cálculo da média aritmética de N números positivos lidos do teclado} {variáveis inteiras = N; variáveis reais = X, MÉDIA, SOMA} início {inicialização de variáveis} N ← 0 SOMA ← 0 {Leitura de dados} ler X enquanto X < > FF fazer {FF, fim de arquivo ou valor sentinela} N ← N + 1 SOMA ← SOMA + X ler X fim_enquanto MÉDIA ← SOMA/N escrever ‘o total de números é ’, N escrever ‘a média é = ’, MÉDIA fim

BASIC 100 110 120 130 140 150 160 170 180 190 200 210 220 230 240 250 260

‘Programa MÉDIA ‘cálculo da medida aritmética de N números, lidos do teclado ‘ variáveis inteiras = N; variáveis reais = X, MÉDIA, SOMA DEFIN N DEFSNG X, MÉDIA, SOMA N = 0 SOMA = 0 INPUT X WHILE X < > - 99 N = N + 1 SOMA = SOMA + X INPUT X WEND MÉDIA = SOMA/N PRINT “o total de números é”, N PRINT “a média é = “, MÉDIA END

PASCAL program média (input, output); {cálculo da média aritmética de N números lidos do teclado} var X, SOMA, MÉDIA = real; N : integer;

Codificação de algoritmos em linguagens de programação: Pascal, Fortran e Modula-2mm19

begin N = 0; SOMA : = 0; read (X); while not eof do begin N : = N + 1; SOMA : = SOMA + X; read (x) end; MÉDIA : = SOMA/N; writeln (‘o total de números é’); writeln (‘a média é’); end.

Codificação em FORTRAN C 100 200

PROGRAM MÉDIA Cálculo da média aritmética de N números lidos do teclado INTEGER N REAL X, SOMA, MÉDIA N = 0 SOMA = 0 READ (5, * , END = 200) X N = N + 1 SOMA = SOMA + X GO TO 100 MÉDIA = SOMA/N PRINT *, ‘o total de números é’, N PRINT *, ‘a média é’, MÉDIA END

Codificação em MODULA-2 MODULE Média FROM RealInOut IMPORT ReadReal, Flag, WriteReal; FROM InOut IMPORT WriteInt, WriteString, Writeln; (*Cálculo da média aritmética de N números positivos lidos do teclado *) VAR X, SOMA, MÉDIA: REAL; n: INTEGER;

BEGIN n:= 0 SOMA:= 0 WriteString (‘Ler uma série de números’); Writeln; ReadReal (X); Writeln; WHILE Flag DO n:= M + 1 Soma:= Soma + X; ReadReal (X); Writeln END; Média:= Soma/FLOAT (n8); Writeln; WriteString (‘o total de número é’); WriteInt (n, 8); Writeln; WriteString (‘a média é = ’); WriteReal (média, 10); END Média.

Related Documents

! I I ! I I
June 2020 67
I
November 2019 59
I '
July 2020 37
I
November 2019 52
I
July 2020 43
I
April 2020 40

More Documents from "Anthony Rosales"

June 2020 10
Apendice A
June 2020 12
June 2020 10
June 2020 8
Trabbenchmark
June 2020 8
June 2020 6