Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

81
Programação II Programação II Prof. Jano Moreira de Souza e Jonice Oliveira

Transcript of Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Page 1: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Programação IIProgramação II

Prof. Jano Moreira de Souza e

Jonice Oliveira

Page 2: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

ObjetivosObjetivos

Conceitos mais profundos de programação Pascal.Revisão Programação I;Bibliotecas;Arquivo Texto;Arquivo Binário;Ponteiros e Estruturas Encadeadas;Estruturas Avançadas de Busca.

Page 3: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O CursoO Curso

Aulas Teóricas – 2ª. Feira (8:00/10:00);Exercícios Práticos - sem nota;Trabalhos em Grupo de 3-5 pessoas;

Definam os grupos;2 Provas;Período: 06/agosto 3/Dezembro (18

aulas)Monitor: Rafael De Martino

Page 4: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

AvaliaçãoAvaliação

2 provas (60%)1ª Prova: 24 setembro2ª Prova: 12 novembroProva 2ª.Chamada: 26 novembro

Matéria Completa

Trabalhos em Grupo (40%)

Page 5: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

ContatosContatos

Prof. Jano – [email protected] Oliveira – [email protected]ágina do curso:http://www.cos.ufrj.br/~jonice/classes/comp2/index.htm

Obs: Ainda NÃO atualizada!!!

Page 6: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O Primeiro ProgramaO Primeiro Programa

Programar significa resolver um problema usando uma solução que o computador seja capaz de realizar;

Para tanto, usamos uma linguagem de programação que o computador seja capaz de “entender”;Linguagens de Alto Nível

Page 7: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Tipos de LinguagemTipos de Linguagem

Linguagem de alto nível Este é o tipo de linguagem de programação que é

usado efetivamente na prática para escrever programas

O grau de abstração é bem alto, próximo ao modo de o ser humano pensar

Neste nível, não trabalhamos com o conceito de instrução de máquina e sim com o de comando

Um comando perfaz várias instruções de máquina As posições de memória são denotadas por variáveis

e constantes

Page 8: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Tipos de LinguagemTipos de Linguagem

Linguagem de alto nível Todo programa escrito em linguagem de alto nível

também tem que passar por um processo de tradução para linguagem de máquina

Esse processo é executado por um programa tradutor chamado compilador ou, em certas situações, interpretador

Sem um compilador ou interpretador, os programas escritos em linguagem de alto nível resultam em peças inúteis na prática, pois o computador não é capaz de executá-los diretamente

Page 9: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Compilador X InterpretadorCompilador X Interpretador

1. Compilador

Editor Compilador Linkeditor

Código Fonte Código Objeto Código Executável

Erros de Compilação

Erros de Linkedição

Erros na Execução

Bibliotecas Externas

Page 10: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Compilador X InterpretadorCompilador X Interpretador

Interpretador, que traduz os comandos ``passo-a-passo'' e na medida da necessidade; LeituraTradução Execução de cada linha do

programa-fonte,

Page 11: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Linguagem PascalLinguagem Pascal

Pascal é uma linguagem de alto nível Ela consiste em:

comandostipos de dados

Ela contém também maneiras de modularizar o desenvolvimento de programasfunções e procedimentos

Page 12: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Esquema de Programa PascalEsquema de Programa Pascal

Todo programa escrito em Pascal tem a seguinte forma geral:

program Nome_do_Programa;

Declarações

begin

Comandos

end.

Page 13: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O Primeiro ProgramaO Primeiro Programa

ProblemaEfigênia e Cristóvão querem calcular a média

de dois números inteiros por meio de um computador

Eles sabem como calcular média, mas não sabem usar computador

Para tanto, pediram ajuda a vocês.

Page 14: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O Primeiro ProgramaO Primeiro Programa

Solução A média é uma estatística muito utilizada na prática,

quando se quer representar por apenas um valor um conjunto de valores numéricos

Uma forma fácil de estimar a média de um conjunto de dados numéricos é somar todos os dados e, depois, dividir essa soma pelo número de dados do conjunto

No nosso caso, temos apenas dois dados o que torna a solução mais fácil ainda

Page 15: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Algoritmo da SoluçãoAlgoritmo da Solução

1. Entre com os dois números no computador

2. Calcule a soma dos dois números

3. Calcule a média dos números

4. Imprima a média

Page 16: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Programa da SoluçãoPrograma da Solução

program Media( input, output );{ Calcula a média de dois números inteiros. } var x, y : integer; m : real;begin { Lê dois números inteiros. } writeln( 'Digite dois números inteiros:' ); readln( x, y ); { Calcula a média dos números. } m := (x + y)/2; { Imprime a média. } writeln( 'A média deles é ', m );end.

Page 17: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Execução do ProgramaExecução do Programa

Digite dois números inteiros:

56 75

A média deles é 6.550000000000000E+001

Page 18: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O Alfabeto do PascalO Alfabeto do Pascal

O alfabeto da linguagem Pascal consiste em:letrasdígitossímbolos especiaispalavras-chaves

Page 19: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O Alfabeto do PascalO Alfabeto do Pascal

LetrasConsiste nas letras latinas maiúsculas e

minúsculasA, B, C, ..., Y, Za, b, c, ..., y, z

DígitosSão os dígitos decimais indo-arábicos

0, 1, 2, ..., 9

Page 20: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O Alfabeto do PascalO Alfabeto do Pascal

Símbolos especiaisSão os símbolos usados para delimitadores,

pontuação, operadores, etc.+, -, *, /, =, <>, <, >, <=, >=, (, ), [, ], :=, ., ,, :, ;, .., ', ^

Palavras-chavesSão palavras da língua inglesa usadas como

se fossem símbolos individuais em várias partes de um programa

Page 21: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

O Alfabeto do PascalO Alfabeto do Pascal

Palavras-chavesElas são:

div, mod, nil, in, or, and, not, if, then, else, case, of, repeat, until, while, do, for, to, downto, begin, end, with, goto, const, var, type, array, record, set, file, function, procedure, label, packed, program

As palavras-chaves da linguagem Pascal são reservadas

A linguagem Pascal não distingue letras maiúsculas de minúsculas

Page 22: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

NúmerosNúmeros

Os números podem ser representados em Pascal em duas formas:inteirosreais

Um número inteiro pode ser positivo, negativo ou zero

Um número inteiro é escrito como uma seqüência de dígitos que pode ser precedida por um sinal, + ou -

Page 23: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

NúmerosNúmeros

Exemplos de números inteiros válidos:60-6+7000000

Números inteiros inválidos:6.437.271-6,0-6.0

Page 24: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

NúmerosNúmeros

Os números reais contêm uma parte fracionária ou um fator de escala

A parte fracionária é separada da parte inteira por um ponto decimal

O fator de escala é um sufixo contendo a letra E ou e, seguida de um inteiro. Este inteiro é a potência de 10 pela qual se deve multiplicar o número para obter sua grandeza correta

Page 25: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

NúmerosNúmeros

Exemplos de números reais válidos:0.00.873-74.173.367890E08.73E+02-741E-10.7336789E2

Page 26: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

NúmerosNúmeros

Exemplos de números reais inválidos0.

.736

2,736.45

25.94E

245.62E0.5

E34

5.E2

Page 27: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

NúmerosNúmeros

As seguintes formas são todas corretas para escrever o número real 253.0:253.0

2.53E2

25.3E+01

253E0

2530E-1

Page 28: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

IdentificadoresIdentificadores

Certos itens de um programa requerem um nome para que sejam identificados

Os nomes são chamados de identificadores

Um identificador consiste em uma letra seguida por qualquer quantidade de outras letras ou dígitos

Na prática, os identificadores devem ser significativos

Page 29: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

IdentificadoresIdentificadores

Exemplos de identificadores válidosIovniPC49UmnomelongodefatoUmExemploQualquer

Exemplos de identificadores inválidos1abcerva-doce$100

Page 30: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Identificadores PadrõesIdentificadores Padrões

Existem alguns identificadores que são pré-declarados em qualquer implementação do Pascal padrão

Eles são:

abs eoln maxint pred round trunc

arctan exp new put sin unpack

boolean false odd read sqr write

char get ord readln sqrt writeln

chr input output real succ

cos integer pack reset text

eof ln page rewrite true

Page 31: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Cadeias de CaracteresCadeias de Caracteres

Uma seqüência de caracteres entre apóstrofes forma uma cadeia de caracteres

Pode ser chamada também pelo nome em inglês: string

Exemplos de cadeias'Isto é um exemplo de cadeia''?''Seu nome é Joana D''Arc'

Page 32: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

ComentáriosComentários

São frases colocadas por todo um programa com o objetivo de explicar ou clarear partes do código-fonte

Eles vêm entre chaves { e }, ou, às vezes, (* e *). Ainda existe //

Comentários são completamente ignorados pelos compiladores

Sua função é apenas aumentar a clareza e documentar um programa

Page 33: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Estrutura Básica de um Programa Estrutura Básica de um Programa em Pascalem Pascal

program identificador;

parte_das_declarações

begin

parte_dos_comandos

end.

Page 34: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

VariáveisVariáveis

Variável de programa é uma abstração para célula de memória

Portanto uma variável armazena um valor ou estado

Page 35: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Declaração de VariáveisDeclaração de Variáveis

Em Pascal, toda variável para ser usada em um programa tem que ser declarada antes

As variáveis de um programa são declaradas na parte de declarações

Declarar uma variável significa instruir o computador a reservar espaço na memória o qual passará a ser referenciado pelo nome da variável apresentado na declaração

Page 36: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Declaração de VariáveisDeclaração de Variáveis

Além disso, na declaração, um tipo é associado à variável

Ou seja, o tipo de uma variável determina quais valores podem ser armazenados pela variável

Em Pascal, desde o momento em que uma variável é criada, seu tipo não pode ser modificado mais posteriormente

Dizemos assim que a linguagem é estaticamente tipada

Page 37: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Declaração de VariáveisDeclaração de Variáveis

Sintaxevar lista_de_variáveis : tipo;

lista_de_variáveis : tipo;

...

lista_de_variáveis : tipo;

Page 38: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Declaração de VariávelDeclaração de Variável

Exemplos

var x : integer;

a, b : char;

area, perimetro : real;

temTelefone : boolean;

Page 39: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Criação de VariáveisCriação de Variáveis

A partir do momento em que uma variável é criada, ela já possui um valor

Este valor inicial conhecido pode ser modificado durante a execução do programa

Page 40: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Destruição de VariáveisDestruição de Variáveis

Uma variável deixa de existir quando o bloco de programa ou de subprograma em que ela foi criada termina de ser executado

Ao ser executado o último comando de um programa, toda a memória que foi alocada para o nosso programa é liberada para o sistema operacional e assim as variáveis do programa são destruídas

Page 41: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

ComandosComandos

Os comandos têm a função essencial de manipular e alterar o estado armazenado nas variáveis

Existem vários comandos em Pascal, porém o mais fundamental de todos é o comando de atribuição

O comando de atribuição modifica explicitamente o valor que uma variável armazena

Page 42: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comando de AtribuiçãoComando de Atribuição

Sintaxevariável := expressão

SemânticaA expressão que aparece do lado direito do

operador de atribuição,:=, é avaliada. O valor resultante da avaliação é então atribuído à variável que aparece do lado esquerdo

Isto é, o valor atual da variável é reposto pelo novo valor resultante da avaliação da expressão

Page 43: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comando de AtribuiçãoComando de Atribuição O comando de atribuição destrói o valor

corrente armazenado na variável—obviamente, ele não destrói a variável

O valor da expressão passa a ser o novo valor armazenado na variável

Exemplosa := 3.52a := b*b*bj := j + 1;p := (j > 0) or (c <> ' ')c := '.'

Page 44: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Entrada e Saída Simples de DadosEntrada e Saída Simples de Dados

Dentre os comandos simples da linguagem, podemos considerar os de entrada e saída de dados

Na realidade, em Pascal, a entrada e a saída são realizadas por meio de chamadas de procedimentos padrões

Por detrás, esses procedimentos de entrada/saída utilizam estruturas de arquivo para realizar as operações

Page 45: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Entrada de DadosEntrada de Dados

Toda informação que quisermos passar para o computador é realizada por meio dos procedimentos:readreadlnSintaxe

read( lista_de_variáveis )

Page 46: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Procedimento readProcedimento read

Exemplosread( a )read( alfa, beta, gama )read( input, a )read( input, alfa, beta, gama )

A chamadaread( v1, v2, v3, ..., vn )

é equivalente aread( v1 ); read( v2 ); read( v3 ); ...;read( vn )

Page 47: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Saída de DadosSaída de Dados

Qualquer informação produzida por um computador fica conhecida por nós somente se for realizada alguma operação de saída

Em Pascal, podemos realizar uma saída de dados por meio dos procedimentos padrões:writewriteln

Page 48: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Procedimento writeProcedimento write

Exemploswrite( a, b, c + 1 )

write( 2*x + 7 )

write( output, a, b, c + 1 )

write( output, 2*x + 7 )

write( 'a = ', x*x - 2*x - 5 )

Page 49: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Saída FormatadaSaída Formatada

A linguagem Pascal permite uma capacidade limitada de formatação do texto de saída por meio dos procedimentos write ou writeln

A cada valor de saída podemos acrescentar até dois sufixos separados pelo símbolo especial dois-pontos

Sintaxevalor_de_saída : largura_do_campo : comprimento_da_fração

Page 50: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Saída FormatadaSaída Formatada

Exemplo Suponha que a variável a seja do tipo real e contenha

o valor -0.357000000E+02

Comando Saída

write( a ) -0.357000000E+02

write( a:10 ) -0.357E+02

write( a:5:1 ) -35.7

write( 'a = ', a:5:1 ) a = -35.7

Page 51: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

ProblemaQueremos calcular a área e o perímetro de

um círculo dado seu raioAnálise do problema

O cálculo da área e do perímetro de um círculo já foi bem estudado pela geometria, desde a época dos gregos antigos

Descobriu-se que estes cálculos envolviam o número irracional

Page 52: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

Análise (cont.)Dado o comprimento do raio r de um círculo,

temos que sua área A e seu perímetro P são dados pelas fórmulas:

rPrA 2 ,2

Page 53: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

Algoritmo Dados

raio do tipo real área do tipo real perímetro do tipo real

1. Leia o raio do círculo

2. Calcule a área

3. Calcule o perímetro

4. Imprima a área e o perímetro

Page 54: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

ImplementaçãoImplementação1 program Circulo;

2 { Calcula a área e o perímetro de um círculo dado o raio. }

3 const

4 PI = 3.141592653589793;

5 var

6 raio, area, perimetro : real;

7 begin

8 writeln( 'Entre com o raio do círculo:' );

9 readln( raio );

10

11 area := PI * sqr( raio );

12 perimetro := 2.0 * PI * raio;

13

14 writeln( 'A área do círculo é: ', area );

15 writeln( 'O perímetro é: ', perimetro );

16 end.

Definição de constante

Saídas com a formatação default para números reais

Page 55: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

TestesTestes____________________________________________

Entre com o raio do círculo:

2

A área do círculo é: 1.256637061435917E+001

O perímetro é: 1.256637061435917E+001

____________________________________________

Entre com o raio do círculo:

3

A área do círculo é: 2.827433388230814E+001

O perímetro é: 1.884955592153876E+001

Page 56: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comandos EstruturadosComandos Estruturados

Os comandos estruturados contêm outros comandos em sua constituição

Eles estabelecem o fluxo de execução dos comandos simples de um programa

O poder de um computador reside na sua capacidade de executar ações seqüenciais, repetitivas e seletivas a grande velocidade e confiabilidade

Page 57: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comandos EstruturadosComandos Estruturados

Pascal fornece várias estruturas de controle:Comandos compostosComandos repetitivosComandos condicionais

Page 58: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comando CompostoComando Composto

Sintaxebegin

C1;

C2;

...

CnendCada Ci é um comando qualquer

Page 59: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comando CompostoComando Composto

Semântica A execução do comando composto envolve a

execução de seus comandos componentes Ci na ordem em que são escritos

Exemplobegin

a := b;

b := c;

c := a

end

Page 60: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comando CompostoComando Composto

Semântica (fluxograma)

C1

C2

C3

Page 61: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comandos CompostosComandos Compostos

Uso de ponto-e-vírgula em comandos Em Pascal, o símbolo especial ; é usado na parte de

comandos para separar um comando do outro O ponto-e-vírgula não é parte integrante de nenhum

comando Observe que o último comando de qualquer comando

composto não tem ponto-e-vírgula Porém, se o programador colocar um ponto-e-vírgula

após o último comando, não causará nenhum erro de sintaxe, porque existe o conceito de comando vazio em Pascal

Page 62: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comandos CondicionaisComandos Condicionais

É muito comum tornar a execução de um comando dependente de alguma condição

Pascal fornece duas formas de comandos com este propósito:Comandos ifComandos case

Por enquanto, vamos estudar apenas os comandos if

Page 63: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comandos ifComandos if

SintaxeForma simples

if condição then

comandoForma completa

if condição then

comando

else

comando

Page 64: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comando if SimplesComando if Simples

Semântica (fluxograma) Vamos considerar

primeiro a forma simples:

if B then C

onde B é uma expressão lógica e C é um comando qualquer

B

C

V

F

Page 65: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

ExemplosExemplos

1) if c = '?' then pergunta := true

2) if i > 0 then begin t := x; x := y; y := t end

Page 66: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comando if CompletoComando if Completo Semântica

(fluxograma) A forma completa do

if:

if B then

C1

else

C2

onde B é uma expressão lógica e C1 e C2 são comandos

C1C2

BV F

Page 67: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

ExemploExemplo

if sqr(b) < 4*a*c then

write('A equação tem raízes complexas')

else

begin

d := sqrt(sqr(b) - 4*a*c);

x1 := (-b + d)/(2*a);

x2 := (-b - d)/(2*a)

end

Page 68: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

ProblemaEufrásia fez três provas para avaliação do

seu rendimento na disciplina de Semiótica. Ela gostaria de saber se foi aprovada, baseando-se no seguinte critério: se a média das três notas for maior ou igual a 60, foi aprovada; caso contrário, foi reprovada.

Faça um programa em Pascal para ajudar Eufrásia a determinar sua aprovação ou reprovação por meio do uso de computador.

Page 69: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

Análise do problemaA determinação da média de três números é

trivial: basta somá-los e depois dividir a soma por 3

Tendo a média, podemos determinar a aprovação ou reprovação pelo seguinte teste:

Se a média for maior ou igual a 60, então aprovação

Senão reprovação

Page 70: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

Algoritmo da solução Dados

nota1, nota2, nota3, média : real

1. Leia as três notas

2. Calcule a soma das três notas

3. Calcule a média

4. Se média ≥ 60, então imprima 'Aprovado(a)' senão imprima 'Reprovado(a)'

Page 71: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Implementação em PascalImplementação em Pascal1 program Avaliacao( input, output );

2 { Determina a aprovação de um aluno em uma disciplina, baseado na

3 média de três notas de provas. }

4 var

5 nota1, nota2, nota3 : real;

6 media : real;

7 begin

8 writeln( 'Digite as três notas das provas:' );

9 readln( nota1, nota2, nota3 );

10

11 media := (nota1 + nota2 + nota3) / 3.0;

12

13 write ('Sua média foi ', media:5:1 );

14 if media >= 60.0 then writeln( ' ===> Aprovado(a)' )

15 else writeln( ' ===> Reprovado(a)' )

16 end.

Comando if completo

Page 72: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Teste do ProgramaTeste do Programa

_____________________________________

Digite as três notas das provas:

50 50 50

Sua média foi 50.0 ===> Reprovado(a)

_____________________________________

Digite as três notas das provas:

64 75 43

Sua média foi 60.7 ===> Aprovado(a)

Page 73: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Comandos if AninhadosComandos if Aninhados

Testes com casos múltiplos são implementados com comandos if dentro de outros comandos if:if condição then

comando

else if condição then

comando

else ...

Page 74: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Nova ImplementaçãoNova Implementação

O programa do cálculo da média e teste de aprovação feito a pedido de Eufrásia pode ser melhorado

No caso de reprovação, Eufrásia gostaria de que fosse feita uma recomendação ao usuário

A nova implementação vem a seguir

Page 75: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

1 program Avaliacao( input, output );

2 { Determina a aprovação de um aluno em uma disciplina, baseado na

3 média de três notas de provas. }

4 var

5 nota1, nota2, nota3 : real;

6 media : real;

7 begin

8 writeln( 'Digite as três notas das provas:' );

9 readln( nota1, nota2, nota3 );

10

11 media := (nota1 + nota2 + nota3) / 3.0;

12

13 write ('Sua média foi ', media:5:1 );

14 if media >= 60.0 then writeln( ' ===> Aprovado(a)' )

15 else

16 begin

17 writeln( ' ===> Reprovado(a)' );

18 writeln( 'Você deve fazer a disciplina novamente!' )

19 end

20 end.

Observe que, para colocar mais de um comando dentro das alternativas de um if, é necessário criar um comando composto delimitado por begin-end

Page 76: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Teste do ProgramaTeste do Programa

________________________________________

Digite as três notas das provas:64 75 43Sua média foi 60.7 ===> Aprovado(a)______________________________________________

Digite as três notas das provas:50 50 50Sua média foi 50.0 ===> Reprovado(a)Você deve fazer a disciplina novamente!

Page 77: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

Eufrásia gostou tanto do programa feito pelos alunos que até pediu uma nova versão, agora para calcular também o conceito recebido, de acordo com a média final

Sua universidade usa o seguinte critério para atribuição de conceitos: Notas entre 90 (inclusive) e 100, conceito A; notas

entre 80 (inclusive) e 90, conceito B; notas entre 70 (inclusive) e 80, conceito C; notas entre 60 (inclusive) e 70, conceito D; e notas menores que 60, conceito R

Page 78: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Projeto de ProgramaçãoProjeto de Programação

Algoritmo Dados

nota1, nota2, nota3, média : realconceito : caracter

1. Leia as notas2. Calcule a média3. Se média ≥ 90 então conceito 'A'

senão se média ≥ 80 então conceito 'B'senão se média ≥ 70 então conceito 'C'senão se média ≥ 60 então conceito 'D'senão conceito 'R'

Page 79: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

1 program Avaliacao( input, output );

2 { Calcula a média de três notas e atribui conceitos de acordo com a média.}

3 var

4 nota1, nota2, nota3, media : real;

5 conceito : char;

6 begin

7 writeln( 'Digite suas três notas:' );

8 readln( nota1, nota2, nota3 );

9

10 media := (nota1 + nota2 + nota3) / 3.0;

11

12 write( 'Sua média foi ', media:5:1 );

13

14 if media >= 90.0 then conceito := 'A'

15 else if media >= 80.0 then conceito := 'B'

16 else if media >= 70.0 then conceito := 'C'

17 else if media >= 60.0 then conceito := 'D'

18 else conceito := 'R';

19 writeln( ' ===> Conceito ', conceito )

20 end.

Comandos if aninhados

Page 80: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Teste do ProgramaTeste do Programa

_____________________________________

Digite suas três notas:

64 75 43

Sua média foi 60.7 ===> Conceito D

_____________________________________

Digite suas três notas:

50 50 50

Sua média foi 50.0 ===> Conceito R

Page 81: Programação II Prof. Jano Moreira de Souza e Jonice Oliveira.

Para Casa Para Casa

Eufrásia que melhorar o programa. Como funcionalidade adicional ela quer saber a sua menor nota e qual foi (primeira, segunda ou terceira). Além disto, caso tenha sido reprovada, ela quer saber o quanto faltou na média para ela passar... Se a diferença for até 5 pontos, ela quer ser notificada para pedir revisão de prova.