A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Prof. Jano Moreira de Souza e Jonice Oliveira

Apresentações semelhantes


Apresentação em tema: "Prof. Jano Moreira de Souza e Jonice Oliveira"— Transcrição da apresentação:

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

2 Objetivos 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.

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

4 Avaliação 2 provas (60%) Trabalhos em Grupo (40%)
1ª Prova: 24 setembro 2ª Prova: 12 novembro Prova 2ª.Chamada: 26 novembro Matéria Completa Trabalhos em Grupo (40%)

5 Obs: Ainda NÃO atualizada!!!
Contatos Prof. Jano – Jonice Oliveira – Página do curso: Obs: Ainda NÃO atualizada!!!

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

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

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

9 Compilador X Interpretador
Erros de Compilação Bibliotecas Externas Erros de Linkedição Editor Compilador Linkeditor Código Fonte Código Objeto Código Executável Erros na Execução

10 Compilador X Interpretador
Interpretador, que traduz os comandos ``passo-a-passo'' e na medida da necessidade; LeituraTradução  Execução de cada linha do programa-fonte,

11 Linguagem Pascal Pascal é uma linguagem de alto nível Ela consiste em:
comandos tipos de dados Ela contém também maneiras de modularizar o desenvolvimento de programas funções e procedimentos

12 Esquema de Programa Pascal
Todo programa escrito em Pascal tem a seguinte forma geral: program Nome_do_Programa; Declarações begin Comandos end.

13 O Primeiro Programa Problema
Efigê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.

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

15 Algoritmo da Solução Entre com os dois números no computador
Calcule a soma dos dois números Calcule a média dos números Imprima a média

16 Programa 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.

17 Execução do Programa Digite dois números inteiros: 56 75
A média deles é E+001

18 O Alfabeto do Pascal O alfabeto da linguagem Pascal consiste em:
letras dígitos símbolos especiais palavras-chaves

19 O Alfabeto do Pascal Letras Dígitos
Consiste nas letras latinas maiúsculas e minúsculas A, B, C, ..., Y, Z a, b, c, ..., y, z Dígitos São os dígitos decimais indo-arábicos 0, 1, 2, ..., 9

20 O Alfabeto do Pascal Símbolos especiais Palavras-chaves
São os símbolos usados para delimitadores, pontuação, operadores, etc. +, -, *, /, =, <>, <, >, <=, >=, (, ), [, ], :=, ., ,, :, ;, .., ', ^ Palavras-chaves São palavras da língua inglesa usadas como se fossem símbolos individuais em várias partes de um programa

21 O Alfabeto do Pascal Palavras-chaves Elas 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

22 Números Os números podem ser representados em Pascal em duas formas:
inteiros reais 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 -

23 Números Exemplos de números inteiros válidos:
6 -6 Números inteiros inválidos: -6,0 -6.0

24 Nú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

25 Números Exemplos de números reais válidos: 0.0 0.873 -74.1 73.36789

26 Números Exemplos de números reais inválidos 0. .736 2,736.45 25.94E

27 Nú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

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

29 Identificadores Exemplos de identificadores válidos
ovni PC49 Umnomelongodefato UmExemploQualquer Exemplos de identificadores inválidos 1abc erva-doce $100

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

31 Cadeias 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'

32 Comentá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

33 Estrutura Básica de um Programa em Pascal
program identificador; parte_das_declarações begin parte_dos_comandos end.

34 Variáveis Variável de programa é uma abstração para célula de memória
Portanto uma variável armazena um valor ou estado

35 Declaraçã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

36 Declaraçã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

37 Declaração de Variáveis
Sintaxe var lista_de_variáveis : tipo; lista_de_variáveis : tipo; ...

38 Declaração de Variável
Exemplos var x : integer; a, b : char; area, perimetro : real; temTelefone : boolean;

39 Criaçã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

40 Destruiçã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

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

42 Comando de Atribuição Sintaxe Semântica variável := expressão
A 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

43 Comando 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 Exemplos a := 3.52 a := b*b*b j := j + 1; p := (j > 0) or (c <> ' ') c := '.'

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

45 Entrada de Dados Toda informação que quisermos passar para o computador é realizada por meio dos procedimentos: read readln Sintaxe read( lista_de_variáveis )

46 Procedimento read Exemplos A chamada é equivalente a read( a )
read( alfa, beta, gama ) read( input, a ) read( input, alfa, beta, gama ) A chamada read( v1, v2, v3, ..., vn ) é equivalente a read( v1 ); read( v2 ); read( v3 ); ...; read( vn )

47 Saí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: write writeln

48 Procedimento write Exemplos write( 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 )

49 Saí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 Sintaxe valor_de_saída : largura_do_campo : comprimento_da_fração

50 Saída Formatada Exemplo
Suponha que a variável a seja do tipo real e contenha o valor E+02 Comando Saída write( a ) E+02 write( a:10 ) -0.357E+02 write( a:5:1 ) -35.7 write( 'a = ', a:5:1 ) a = -35.7

51 Projeto de Programação
Problema Queremos calcular a área e o perímetro de um círculo dado seu raio Aná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 

52 Projeto 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:

53 Projeto de Programação
Algoritmo Dados raio do tipo real área do tipo real perímetro do tipo real Leia o raio do círculo Calcule a área Calcule o perímetro Imprima a área e o perímetro

54 Implementação Definição de constante
1 program Circulo; 2 { Calcula a área e o perímetro de um círculo dado o raio. } 3 const 4 PI = ; 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

55 Testes ____________________________________________
Entre com o raio do círculo: 2 A área do círculo é: E+001 O perímetro é: E+001 3 A área do círculo é: E+001 O perímetro é: E+001

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

57 Comandos Estruturados
Pascal fornece várias estruturas de controle: Comandos compostos Comandos repetitivos Comandos condicionais

58 Comando Composto Sintaxe begin C1; C2; ... Cn end
Cada Ci é um comando qualquer

59 Comando Composto Semântica Exemplo
A execução do comando composto envolve a execução de seus comandos componentes Ci na ordem em que são escritos Exemplo begin a := b; b := c; c := a end

60 Comando Composto Semântica (fluxograma) C1 C2 C3

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

62 Comandos 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 if Comandos case Por enquanto, vamos estudar apenas os comandos if

63 Comandos if Sintaxe Forma simples Forma completa if condição then
else

64 Comando if Simples Semântica (fluxograma)
B C V F 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

65 Exemplos if c = '?' then pergunta := true if i > 0 then begin
t := x; x := y; y := t end

66 Comando 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 C1 C2 B V F

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

68 Projeto de Programação
Problema Eufrá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.

69 Projeto de Programação
Análise do problema A 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

70 Projeto de Programação
Algoritmo da solução Dados nota1, nota2, nota3, média : real Leia as três notas Calcule a soma das três notas Calcule a média Se média ≥ 60, então imprima 'Aprovado(a)' senão imprima 'Reprovado(a)'

71 Implementação em Pascal
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 writeln( ' ===> Reprovado(a)' ) 16 end. Comando if completo

72 Teste do Programa _____________________________________
Digite as três notas das provas: Sua média foi ===> Reprovado(a) Sua média foi ===> Aprovado(a)

73 Comandos 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 else ...

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

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

76 Teste do Programa ________________________________________
Digite as três notas das provas: Sua média foi ===> Aprovado(a) ______________________________________________ Sua média foi ===> Reprovado(a) Você deve fazer a disciplina novamente!

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

78 Projeto de Programação
Algoritmo Dados nota1, nota2, nota3, média : real conceito : caracter Leia as notas Calcule a média 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'

79 Comandos if aninhados 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

80 Teste do Programa _____________________________________
Digite suas três notas: Sua média foi ===> Conceito D Sua média foi ===> Conceito R

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


Carregar ppt "Prof. Jano Moreira de Souza e Jonice Oliveira"

Apresentações semelhantes


Anúncios Google