Programao II Prof Jano Moreira de Souza e
- Slides: 81
Programação II Prof. Jano Moreira de Souza e Jonice Oliveira
Objetivos l Conceitos mais profundos de programação Pascal. Revisão Programação I; l Bibliotecas; l Arquivo Texto; l Arquivo Binário; l Ponteiros e Estruturas Encadeadas; l Estruturas Avançadas de Busca. l
O Curso Aulas Teóricas – 2ª. Feira (8: 00/10: 00); l Exercícios Práticos - sem nota; l Trabalhos em Grupo de 3 -5 pessoas; l l Definam os grupos; 2 Provas; l Período: 06/agosto 3/Dezembro (18 aulas) l Monitor: Rafael De Martino l
Avaliação l 2 provas (60%) 1ª Prova: 24 setembro l 2ª Prova: 12 novembro l Prova 2ª. Chamada: 26 novembro l l Matéria l Completa Trabalhos em Grupo (40%)
Contatos Prof. Jano – jano@cos. ufrj. br l Jonice Oliveira – jonice@cos. ufrj. br l Página do curso: l http: //www. cos. ufrj. br/~jonice/classes/comp 2/index. htm Obs: Ainda NÃO atualizada!!!
O Primeiro Programar significa resolver um problema usando uma solução que o computador seja capaz de realizar; l Para tanto, usamos uma linguagem de programação que o computador seja capaz de “entender”; l l Linguagens de Alto Nível
Tipos de Linguagem l Linguagem de alto nível l l 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
Tipos de Linguagem l Linguagem de alto nível l 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
Compilador X Interpretador l 1. Compilador Erros de Compilação Editor Compilador Código Fonte Bibliotecas Externas Erros de Linkedição Linkeditor Código Objeto Código Executável Erros na Execução
Compilador X Interpretador l Interpretador, que traduz os comandos ``passo-a -passo'' e na medida da necessidade; l Leitura Tradução Execução de cada linha do programa-fonte,
Linguagem Pascal é uma linguagem de alto nível l Ela consiste em: l comandos l tipos de dados l l Ela contém também maneiras de modularizar o desenvolvimento de programas l funções e procedimentos
Esquema de Programa Pascal l Todo programa escrito em Pascal tem a seguinte forma geral: program Nome_do_Programa; Declarações begin Comandos end.
O Primeiro Programa l Problema Efigênia e Cristóvão querem calcular a média de dois números inteiros por meio de um computador l Eles sabem como calcular média, mas não sabem usar computador l Para tanto, pediram ajuda a vocês. l
O Primeiro Programa l Solução l l l 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
Algoritmo da Solução 1. 2. 3. 4. 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
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.
Execução do Programa Digite dois números inteiros: 56 75 A média deles é 6. 550000000 E+001
O Alfabeto do Pascal l O alfabeto da linguagem Pascal consiste em: letras l dígitos l símbolos especiais l palavras-chaves l
O Alfabeto do Pascal l Letras l Consiste nas letras latinas maiúsculas e minúsculas B, C, . . . , Y, Z l a, b, c, . . . , y, z l A, l Dígitos l São os dígitos decimais indo-arábicos l 0, 1, 2, . . . , 9
O Alfabeto do Pascal l Símbolos especiais l São os símbolos usados para delimitadores, pontuação, operadores, etc. +, -, *, /, =, <>, <, >, <=, >=, (, ), [, ], : =, . , , , : , ; , . . , ', ^ l Palavras-chaves l São palavras da língua inglesa usadas como se fossem símbolos individuais em várias partes de um programa
O Alfabeto do Pascal l Palavras-chaves l Elas são: l 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 l A linguagem Pascal não distingue letras maiúsculas de minúsculas l
Números Os números podem ser representados em Pascal em duas formas: l inteiros l reais l Um número inteiro pode ser positivo, negativo ou zero l Um número inteiro é escrito como uma seqüência de dígitos que pode ser precedida por um sinal, + ou l
Números l Exemplos de números inteiros válidos: 6 0 -6 +7000000 l Números inteiros inválidos: 6. 437. 271 -6, 0 -6. 0
Números Os números reais contêm uma parte fracionária ou um fator de escala l A parte fracionária é separada da parte inteira por um ponto decimal l 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 l
Números l Exemplos de números reais válidos: 0. 0 0. 873 -74. 1 73. 36789 0 E 0 8. 73 E+02 -741 E-1 0. 7336789 E 2
Números l Exemplos de números reais inválidos 0. . 736 2, 736. 45 25. 94 E 245. 62 E 0. 5 E 34 5. E 2
Números l As seguintes formas são todas corretas para escrever o número real 253. 0: 253. 0 2. 53 E 2 25. 3 E+01 253 E 0 2530 E-1
Identificadores Certos itens de um programa requerem um nome para que sejam identificados l Os nomes são chamados de identificadores l Um identificador consiste em uma letra seguida por qualquer quantidade de outras letras ou dígitos l Na prática, os identificadores devem ser significativos l
Identificadores l Exemplos de identificadores válidos I ovni PC 49 Umnomelongodefato Um. Exemplo. Qualquer l Exemplos de identificadores inválidos 1 abc erva-doce $100
Identificadores Padrões l l 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
Cadeias de Caracteres Uma seqüência de caracteres entre apóstrofes forma uma cadeia de caracteres l Pode ser chamada também pelo nome em inglês: string l Exemplos de cadeias l 'Isto é um exemplo de cadeia' '? ' 'Seu nome é Joana D''Arc'
Comentários São frases colocadas por todo um programa com o objetivo de explicar ou clarear partes do código-fonte l Eles vêm entre chaves { e }, ou, às vezes, (* e *). Ainda existe // l Comentários são completamente ignorados pelos compiladores l Sua função é apenas aumentar a clareza e documentar um programa l
Estrutura Básica de um Programa em Pascal program identificador; parte_das_declarações begin parte_dos_comandos end.
Variáveis Variável de programa é uma abstração para célula de memória l Portanto uma variável armazena um valor ou estado l
Declaração de Variáveis l l l 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
Declaração de Variáveis l l 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
Declaração de Variáveis l Sintaxe var lista_de_variáveis : tipo; . . . lista_de_variáveis : tipo;
Declaração de Variável l Exemplos var x : integer; a, b : char; area, perimetro : real; tem. Telefone : boolean;
Criação de Variáveis A partir do momento em que uma variável é criada, ela já possui um valor l Este valor inicial conhecido pode ser modificado durante a execução do programa l
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 l 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 l
Comandos Os comandos têm a função essencial de manipular e alterar o estado armazenado nas variáveis l Existem vários comandos em Pascal, porém o mais fundamental de todos é o comando de atribuição l O comando de atribuição modifica explicitamente o valor que uma variável armazena l
Comando de Atribuição l Sintaxe variável : = expressão l 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 l Isto é, o valor atual da variável é reposto pelo novo valor resultante da avaliação da expressão l
Comando de Atribuição l l l 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 a j p c : = : = : = 3. 52 b*b*b j + 1; (j > 0) or (c <> ' ') '. '
Entrada e Saída Simples de Dados Dentre os comandos simples da linguagem, podemos considerar os de entrada e saída de dados l Na realidade, em Pascal, a entrada e a saída são realizadas por meio de chamadas de procedimentos padrões l Por detrás, esses procedimentos de entrada/saída utilizam estruturas de arquivo para realizar as operações l
Entrada de Dados l Toda informação que quisermos passar para o computador é realizada por meio dos procedimentos: l readln l Sintaxe read( lista_de_variáveis )
Procedimento read l Exemplos read( l a ) alfa, beta, gama ) input, alfa, beta, gama ) A chamada read( v 1, v 2, v 3, . . . , vn ) l é equivalente a read( v 1 ); read( v 2 ); read( v 3 ); . . . ; read( vn )
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 l Em Pascal, podemos realizar uma saída de dados por meio dos procedimentos padrões: l writeln l
Procedimento write l Exemplos write( write( a, b, c 2*x + 7 output, 'a = ', + 1 ) ) a, b, c + 1 ) 2*x + 7 ) x*x - 2*x - 5 )
Saída Formatada l l l 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
Saída Formatada l Exemplo l Suponha que a variável a seja do tipo real e contenha o valor -0. 357000000 E+02 Comando Saída write( a ) -0. 357000000 E+02 write( a: 10 ) -0. 357 E+02 write( a: 5: 1 ) -35. 7 write( 'a = ', a: 5: 1 ) a = -35. 7
Projeto de Programação l Problema l l 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 l Descobriu-se que estes cálculos envolviam o número irracional l
Projeto de Programação l Análise (cont. ) l 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:
Projeto de Programação l Algoritmo l Dados l l l 1. 2. 3. 4. 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
Implementação 1 program Circulo; 2 { Calcula a área e o perímetro de um círculo dado o raio. } 3 const 4 PI = 3. 141592653589793; Definição de constante 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; Saídas com a formatação default para números reais 13 14 writeln( 'A área do círculo é: ', area ); 15 writeln( 'O perímetro é: 16 end. ', perimetro );
Testes ______________________ Entre com o raio do círculo: 2 A área do círculo é: 1. 256637061435917 E+001 O perímetro é: 1. 256637061435917 E+001 ______________________ Entre com o raio do círculo: 3 A área do círculo é: 2. 827433388230814 E+001 O perímetro é: 1. 884955592153876 E+001
Comandos Estruturados Os comandos estruturados contêm outros comandos em sua constituição l Eles estabelecem o fluxo de execução dos comandos simples de um programa l O poder de um computador reside na sua capacidade de executar ações seqüenciais, repetitivas e seletivas a grande velocidade e confiabilidade l
Comandos Estruturados l Pascal fornece várias estruturas de controle: Comandos compostos l Comandos repetitivos l Comandos condicionais l
Comando Composto l Sintaxe begin C 1; C 2; . . . Cn end l Cada Ci é um comando qualquer
Comando Composto l Semântica l l 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
Comando Composto l Semântica (fluxograma) C 1 C 2 C 3
Comandos Compostos l Uso de ponto-e-vírgula em comandos l l 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
Comandos Condicionais É muito comum tornar a execução de um comando dependente de alguma condição l Pascal fornece duas formas de comandos com este propósito: l Comandos if l Comandos case l l Por enquanto, vamos estudar apenas os comandos if
Comandos if l Sintaxe l Forma simples if condição then comando l Forma completa if condição then comando else comando
Comando if Simples l Semântica (fluxograma) l Vamos considerar primeiro a forma simples: if B then C l onde B é uma expressão lógica e C é um comando qualquer F B V C
Exemplos 1) if c = '? ' then pergunta : = true 2) if i > 0 then begin t : = x; x : = y; y : = t end
Comando if Completo l Semântica (fluxograma) l A forma completa do if: V l if B then C 1 else C 2 onde B é uma expressão lógica e C 1 e C 2 são comandos C 1 B F C 2
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); x 1 : = (-b + d)/(2*a); x 2 : = (-b - d)/(2*a) end
Projeto de Programação l 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, baseandose 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. l Faça um programa em Pascal para ajudar Eufrásia a determinar sua aprovação ou reprovação por meio do uso de computador. l
Projeto de Programação l 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 l Tendo a média, podemos determinar a aprovação ou reprovação pelo seguinte teste: l l Se a média for maior ou igual a 60, então aprovação l Senão reprovação
Projeto de Programação l Algoritmo da solução l Dados l 1. 2. 3. 4. nota 1, nota 2, nota 3, 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)'
Implementação em Pascal 1 program Avaliacao( input, output ); 2 { Determina a aprovação de um aluno em uma disciplina, baseado na 3 4 média de três notas de provas. } var 5 nota 1, nota 2, nota 3 : real; 6 media : real; 7 begin 8 writeln( 'Digite as três notas das provas: ' ); 9 readln( nota 1, nota 2, nota 3 ); 10 11 media : = (nota 1 + nota 2 + nota 3) / 3. 0; Comando if completo 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.
Teste 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)
Comandos if Aninhados l Testes com casos múltiplos são implementados comandos if dentro de outros comandos if: if condição then comando else. . .
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 l No caso de reprovação, Eufrásia gostaria de que fosse feita uma recomendação ao usuário l A nova implementação vem a seguir l
1 program Avaliacao( input, output ); 2 { Determina a aprovação de um aluno em uma disciplina, baseado na 3 4 média de três notas de provas. } var 5 nota 1, nota 2, nota 3 : real; 6 media : real; 7 begin 8 writeln( 'Digite as três notas das provas: ' ); 9 readln( nota 1, nota 2, nota 3 ); 10 11 media : = (nota 1 + nota 2 + nota 3) / 3. 0; 12 Observe que, para colocar mais de um comando dentro das alternativas de um if, é necessário criar um comando composto delimitado por begin -end 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 20 end.
Teste do Programa ____________________ Digite as três notas das provas: 64 75 43 Sua média foi 60. 7 ===> Aprovado(a) _______________________ Digite as três notas das provas: 50 50 50 Sua média foi 50. 0 ===> Reprovado(a) Você deve fazer a disciplina novamente!
Projeto de Programação l l 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: l 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
Projeto de Programação l Algoritmo l Dados nota 1, nota 2, nota 3, média : real conceito : caracter 1. 2. 3. 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'
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 nota 1, nota 2, nota 3, media : real; 5 conceito : char; 6 begin 7 writeln( 'Digite suas três notas: ' ); 8 readln( nota 1, nota 2, nota 3 ); 9 10 media : = (nota 1 + nota 2 + nota 3) / 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
Teste 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
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.
- Laguna de jano
- Uniones celulares
- Profesor jano
- Profesor jano
- Felipe moreira
- Moreira
- Esdras cabus moreira
- Undao
- Como prevenir el acoso escolar - wikipedia
- Dr kenneth ceciliano
- Rizia moreira
- Sonhareacontecer
- Permeabilidad vascular
- Portal aprendere
- Marco antonio moreira aprendizaje significativo
- Hansel d'souza
- Marcone jamilson freitas souza
- Paula souza
- Projeto de pesquisa cronograma
- Programação linear inteira
- Anita d'souza md
- Antonio francisco de paula souza
- Edilece souza couto
- Marcone jamilson freitas souza
- Dra mirella ginecologista
- Mabel mentors
- Souza instrumentos musicais
- Luiz vicente de souza queiroz
- Jonathan d souza
- Mirella gomes de souza
- Marcone jamilson freitas souza
- Val de souza
- Four intertwining strands of sexuality
- Paula souza
- Marcone jamilson freitas souza
- Elvira souza lima pdf
- Estridor inspiratório
- Jefferson de souza bernardes
- Social cognitivo
- Mirella gomes de souza
- Guido lemos de souza filho
- Alfred souza
- El comedor paulo souza
- Irineu de souza francisco
- Martin schneider upb
- Prof cons
- Prof na discorda
- Bart selman rate my prof
- Prof raj reddy
- Prof. dr hab. n. med. anna piekarska
- Prof dr bilgin arda
- Foundation in general science in ireland
- Samim
- Assis. prof.
- Gksal
- Langage familier exemple
- Prof. dr. qumrul ahsan
- Esterel prof
- Kadranlara göre karın ağrısı
- Heinz mandl
- Prof. mag.
- Pediatric history and physical examination
- Prof.dr.saliha kırıcı
- Visseral mezoderm
- Prof msc
- Prof. dr. peter baumeister
- Hatice mergen
- Syzyfowe prace andrzej radek
- Ismir turkey
- Prof dr metin ingeç
- Dr sibel ertan
- Hekm
- Dr martin rumende
- Nonepileptiform
- Physogenic
- Learning without burden
- Prof.dr.pelin gündeş
- Fataprof
- Salvatore venticinque
- "prof universidade paulista unip"
- Dr karanu gastroenterologist contacts
- Ligações ionicas