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

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

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

Apresentações semelhantes


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

1 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%) 1ª Prova: 24 setembro 2ª Prova: 12 novembro Prova 2ª.Chamada: 26 novembro Matéria Completa Trabalhos em Grupo (40%)

5 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 1. Compilador EditorCompiladorLinkeditor Código FonteCódigo ObjetoCódigo Executável Erros de Compilação Erros de Linkedição Erros na Execução Bibliotecas Externas

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

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: 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 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 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: Números inteiros inválidos: ,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: E0 8.73E E E2

26 Números Exemplos de números reais inválidos , E E0.5 E34 5.E2

27 Números As seguintes formas são todas corretas para escrever o número real 253.0: E2 25.3E E0 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 I 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: abseolnmaxintpredroundtrunc arctanexpnewputsinunpack booleanfalseoddreadsqrwrite chargetordreadlnsqrtwriteln chrinputoutputrealsucc cosintegerpackresettext eoflnpagerewritetrue

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 ;... 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 variável := expressão Semântica 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ávelobviamente, 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 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 ComandoSaí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 1. Leia o raio do círculo 2. Calcule a área 3. Calcule o perímetro 4. Imprima a área e o perímetro

54 Implementação 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 ); area := PI * sqr( raio ); 12 perimetro := 2.0 * PI * raio; writeln( 'A área do círculo é: ', area ); 15 writeln( 'O perímetro é: ', perimetro ); 16 end. Definição de constanteSaí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 ____________________________________________ Entre com o raio do círculo: 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 C 1 ; C 2 ;... C n end Cada C i é um comando qualquer

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

60 Comando Composto Semântica (fluxograma) C1C1 C2C2 C3C3

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 if condição then comando Forma completa if condição then comando else comando

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

65 Exemplos 1) if c = '?' then pergunta := true 2) 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 C 1 else C 2 onde B é uma expressão lógica e C 1 e C 2 são comandos C1C1 C2C2 B VF

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

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 ); media := (nota1 + nota2 + nota3) / 3.0; 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 50.0 ===> Reprovado(a) _____________________________________ Digite as três notas das provas: Sua média foi 60.7 ===> 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 comando 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 ); media := (nota1 + nota2 + nota3) / 3.0; 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

76 Teste do Programa ________________________________________ Digite as três notas das provas: Sua média foi 60.7 ===> Aprovado(a) ______________________________________________ Digite as três notas das provas: Sua média foi 50.0 ===> 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 1. Leia as notas 2. Calcule a média 3. 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 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; write( 'Sua média foi ', media:5:1 ); 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 60.7 ===> Conceito D _____________________________________ Digite suas três notas: Sua média foi 50.0 ===> Conceito R

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


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

Apresentações semelhantes


Anúncios Google