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

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

Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I.

Apresentações semelhantes


Apresentação em tema: "Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I."— Transcrição da apresentação:

1 Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I – BCC701

2 O valor de e x, onde x é um número real, pode ser calculado pela seguinte série de Taylor: Um valor aproximado para e x pode ser obtido se utilizarmos um número finito de termos no somatório acima. 2

3 Escreva um programa que leia o um número real x e calcule um valor aproximado para e x, com um número de termos n, também fornecido como entrada para o programa. Como deve ser feito esse cálculo? Você usaria um for ou um while ? 3

4 Dados x e n, queremos é calcular Como deve ser feito esse cálculo? Você usaria um for ou um while ? 4

5 Exemplos de execução: Qual é o valor de x?.5 Qual o número de termos? 1 ex = 1. Qual é o valor de x?.5 Qual o número de termos? 2 ex = 1.5 Qual é o valor de x?.5 Qual o número de termos? 3 ex =

6 // Cálculo de e x x = input(Qual é o valor de x? ") n = input(Qual o número de termos? ") soma = 1; num = x; den = 1; for i=2:n soma = soma + num/den num = num * x den = den * i end printf(e x = %g,soma) 6

7 Note que a diferença entre os valores calculados dimunui, à medida que aumentamos o número de termos do sometório, e o valor calculado aproxima-se do valor de e x 7 ne 0.5 s n – s n

8 Escreva um programa que leia o um número real x e calcule um valor para e x, com erro de aproximação inferior a um valor dado como entrada. Como deve ser feito esse cálculo? Você usaria um for ou um while ? 8

9 Exemplo de execução: Qual é o valor de x?.5 Qual erro de aproximação? 0.01 ex = no. de termos = 5 Qual é o valor de x?.5 Qual erro de aproximação? ex = no. de termos = 10 9

10 // Cálculo de e x x = input(Qual é o valor de x? ") err = input(Qual erro de aproximação? ") sn = 1; snAnt = %inf; i = 1; num = x; den = 1; while sAnt – sn >= err soma = soma + num/den i = i+1 num = num * x den = den * i end printf(e x = %g,soma) 10

11 Suponha que queremos escrever um programa para determinar quantas vezes um dado valor n ocorre em um vetor v. Considere os dois seguintes casos: O vetor v não está ordenado v = [ ] O vetor v está ordenado (em ordem descendente) v = [ ] Como você implementaria o programa em cada caso? 11

12 v = [ ] n = input("Digite o número procurado: ") count = 0 for i = 1:length(v) if v(i)==n then count = count +1 end printf("%g ocorre %g vezes",n,count) 12

13 v = [ ] n = input("Digite o número procurado: ") i = 1 while sv(i) > n i = i +1 end count = 0 while sv(i) == n count = count + 1 i = i+1 end printf("%g ocorre %g vezes",n,count) 13

14 Faça um programa que apresente ao usuário um menu com as seguintes opções: inclui/altera nota de aluno lista notas de todos os alunos termina o programa Conforme a opção selecionada, o programa deve executar a ação correspondente e voltar a apresentar o menu de opções 14

15 // lê a tabela de notas de um arquivo // exibe menu de opções // op = le opção while op <> fim do if op == inclui/altera then // inclui/altera nota de aluno elseif op == lista then // exibe notas de todos os alunos else // opção inválida end // op = le opção end // grava a tabela de notas em arquivo 15

16 16 printf(Sistema de Controle de Notas\n) printf( \n) printf(Opções: A – altera nota de aluno\n) printf( L – lista todas as notas\n) printf( F – termina o programa\n) msg = Digite a opção desejada (A,C,L,P,F):

17 // le a tabela de notas de um arquivo // exibe menu de opções op = input(msg,s); while op <> F | op <> f do if op == A | op == a then // inclui/altera nota de aluno elseif op == L | op == L then // exibe notas de todos os alunos else // opção inválida end op = input(msg,s') end // grava a tabela de notas em arquivo 17

18 le a matrícula e a nota do aluno; se a matrícula já ocorrer na tabela, a nota é alterada se a matrícula não ocorrre na tabela, a matrícula e a nota são incluídas 18

19 if (op == 'A' | op == 'a') then // altera nota de aluno matr = input("Matrícula: ") nota = input("Nota: ") ll = find(notas(:,1)==matr) if ll==[] then notas = [notas; [matr nota]] else notas(ll,2)= nota end printf("\n") 19 Procura por matr na primeira linha da matriz notas. ll = linha em que matr ocorre, ou ll = [], se matr não ocorre em notas Inclui novo aluno/nota na matriz notas. Modifica a nota do aluno

20 Na aula prática você vai incluir novas opções no sistema de controle de notas: consulta nota de um aluno Lê matrícula e informa a nota do aluno exibe mensagem, caso o aluno não esteja cadastrado lista alunos aprovados sleciona os alunos com nota >= 6.0 exibe lista de matrícula/nota desses alunos 20

21 Vamos usar comandos bastante simples para ler e gravar as notas em um arquivo. Se você quiser saber mais sobre E/S em arquivos, consulte livros e manuais de Scilab. Vamos supor que o arquivo notas será lido e gravado em em um diretório cujo path está armazenado na variável DIR. 21

22 // le o arquivo de notas no diretório DIR DIR = "/Users/luciliacf/Desktop/" [fd,err1] = mopen(DIR + "notas", "r") err2 = meof(fd) mclose(DIR+"notas") if err1 <> 0 | err2 <> 0 then notas = [] else notas = fscanfMat(DIR+"notas") end 22 Abre o arquivo para leitura Testa se o arquivo está vazio Fecha o arquivo Lê a matriz notas do arquivo notas Se ocorreu erro na leitura do arquivo, inicializa a matriz notas vazia

23 // regrava arquivo de notas if notas <> [] then [x,k] = gsort(notas(:,1),'g','i') notas = notas(k,:) fprintfMat(DIR + "notas",notas) end 23 Somente grava o arquivo se a matriz de notas não for vazia Ordena a matriz notas por matrícula Grava a matriz notas do arquivo notas


Carregar ppt "Andréa Iabrudi 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I."

Apresentações semelhantes


Anúncios Google