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

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Programação de Computadores
Estruturas de Controle
Programação em Java Prof. Maurício Braga
Estruturas de Repetição
Linguagem C Marco Reis.
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Introdução à Computação - Jorge Macêdo
Estruturas de repetição
Claudio Esperança Python: Comandos Básicos. Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são.
Programação para Engenharia I
Estrutura de Repetição
Rodrigo de Toledo (original: Claudio Esperança)
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Lógica de Programação Módulo II
Linguagem C Strings.
Vetores, Matrizes e Funções
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
O Portal do Estudante de Computação
Aula 07 Comandos de Repetição while e for
Aula 03 Revisão de Expressões Comando de Seleção
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Aula prática 6 Vetores e Matrizes
Linguagem de Programação I Parte II
BCC /01 Funções. Material Didático Unificado. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento de Ciência.
Aula 06 Comandos de Repetição for
Aula Teórica 03 Comandos Condicionais (Decisão) Semana 03
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Material Didático Proposto
FTIN Formação Técnica em Informática
PROGRAMAÇÃO I UNIDADE 4.
Seminário 1: Revisão de C
Estruturas de Dados Módulo 3 – Controle de Fluxo
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Estrutura de Decisão e Repetição
Aula 6 - Estruturas de Controle
Algoritmo e Programação
Linguagem de Programação JAVA
Capítulo III Modularização Procedimentos e Funções Universidade Federal de São Carlos Departamento de Computação Aluna: Luanna Lopes Lobato
Introdução à programaçao em PERL Levi Lúcio, Vasco Amaral, Programação em PERL, FCA-Editora de Informática.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
BCC /01 Aula Teórica 09 Funções Material Didático Proposto. 1 BCC701 – Programação de Computadores I Universidade Federal de Ouro Preto Departamento.
Algoritmos e Estruturas de Dados RECURSIVIDADE. O que é recursividade? Recursividade significa algo ser definido em termos de sí próprio. Em termos de.
Introdução à Linguagem C
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Programação e Aplicações Gráficas
Capítulo VI – Variáveis Indexadas 6.1 – A necessidade de variáveis indexadas 6.2 – Vetores e matrizes 6.3 – Aplicações com vetores numéricos 6.4 – Aplicações.
Introdução ao MATLAB 5.3 para Hidrólogos
Algoritmos.
Programação de Computadores - 1
Introdução a Programação
Introdução à Programação
Fundamentos de Programação
Programação Computacional Aula 9: Meu primeiro programa em C
Profa. Maria Augusta Constante Puget
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
Linguagem de Programação I Parte IV
 O que são arrays:  estruturas de dados homogêneas  coleção de elementos do mesmo tipo referenciada por um nome comum  um array pode ser imaginado.
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
Linguagem de Programação 11 Estruturas de Decisão e Repetição. Prof. Luiz José Hoffmann Filho
Laço ou loop e repetição
INTRODUÇÃO A COMPUTAÇÃO ENG. CIVIL Professora: Fabíola Gonçalves. UFU Universidade Federal de Uberlândia.
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
1 CCO 016 FUNDAMENTOS DE PROGRAMAÇÃO Universidade Federal de Itajubá Prof. Dr. Edison Oliveira de Jesus.
1 Estruturas Condicionais Aula – Tópico 3 Algoritmos e Estruturas de Dados I (DCC/003)
Grupos de Slides No 5. Prof. SIMÃO
Algoritmos Grupos de Slides No 7. Prof. SIMÃO Estrutura de Repetição “para - passo”” for Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof. Luis Alberto.
Transcrição da apresentação:

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

 Alguns tipos de dados básicos: ◦ numéricos: integer, float (simple, double), complex ◦ lógico ◦ string (sequência de caracteres)  Expressões ◦ numéricas ◦ lógicas 2 x^(2*y) – sqrt(3.7*%pi) x 10 | y < -1)

 Variáveis ◦ área de memória que armazena algum dado e é referenciada por meio de um nome  Comando de Atribuição  Comandos de Desvio 3 x = x+3^(2*y) if x < 2 then z = 2*x elseif x == 2 | x == 3 then z = x +10 elseif x>10 & x<30 then z = x * 5 else z = 46 end if x < 2 then z = 2*x elseif x == 2 | x == 3 then z = x +10 elseif x>10 & x<30 then z = x * 5 else z = 46 end

 Matrizes e vetores ◦ Indexação de matrizes ◦ Operações e funções sobre matrizes 4 M = [3, 4; 1 2] M(2,1) = M(1,2) + 10 M(2,:) = M(1,:) + M(:,2) x = sum((M.* [1, 2; 2, 1]) ^ 2)

 O pH de uma solução aquosa é medido por sua acidez. A escala do pH varia entre 0 e 14, inclusive. Uma solução como pH igual a 7 é dita neutra; uma solução com o pH maior que 7 é dita básica; e uma solução com o pH menor que 7 é dita ácida. Escreva um programa que leia o pH de uma solução e imprima se a solução é neutra, básica ou ácida. O programa deve testar se o valor fornecido como entrada é um valor válido, isto é, se está no intervalo fechado [0,14]. 5

6

7 Se o usuário errar ao digitar o valor do PH, ele não terá chance de corrigir seu erro, fornecendo um novo valor Queremos modificar o programa de modo que, se o valor fornecido não for válido, o usuário possa digitar novamente um valor, até que digite um valor válido.

 Vamos precisar de um comando de repetição  A digitação de um novo valor deve ser solicitada, enquanto o valor digitado anteriormente não for válido. 8

ph = input(“ Informe o PH da solução: ”) while ph 14 printf(“ pH inválido: deve ser de 0 a 14 ”) ph = input(“ Informe o PH da solução: ”) end 9

 Execução do comando while: 1.primeiro, a condição é avaliada 2.se a condição for verdadeira, então o bloco de comandos dentro do while é executado, e volta-se ao passo 1. 3.se a condição for falsa, o comando while termina, e a execução prossegue a partir do comando imediatamente subsequente ao comando while. UFMG DCC while end

11

12

Que valores são impressos pelo seguinte trecho de programa? x = 1 while x < 5 printf('x = %g',x) x = x + 1 end x = 1 x = 2 x = 3 x = 4

Quando este loop irá parar? Sem intervenção, nunca. Cuidado com o uso de while! x = 1 while x < 10 printf('x = %g',x) x = x - 1 end

 MDC(a,b) onde a e b são inteiros ◦ MDC(a,b) é o maior inteiro g que divide a e b ◦ Isto é, a = g.m e b=g.n, onde m,n são inteiros, e, para todo inteiro c que divide a e b, temos que c divide g ◦ Exemplo: MDC(21,12) = 3 ◦ Se MDC(n,m) = 1, m e n são ditos primos entre si. Ex: MDC(9,5) = 1

 Algoritmo de Euclides: ◦ criado em 300 A.C., e em uso até hoje!  Idéia: ◦ mdc(a,a) = a ◦ se a > b, mdc(a,b) = mdc(a-b,b) ◦ se b > a, mdc(a,b) = mdc(a, b-a)  Método: ◦ se a = b, o mdc(a,b) é igual a a (ou a b) ◦ senão, substituir o maior pela diferença entre o maior e o menor e repetir o processo, até que os dois valores sejam iguais (isto é, até que a=b)

= = = =21

Em cada passo, o maior entre a e b é substituído pela diferença entre a e b Valores iniciais colocados na preparação do loop O loop termina quando a = b

Em cada passo, o maior entre a e b é substituído pela diferença entre a e b Valores iniciais colocados na preparação do loop O loop termina quando a = b

 Método: ◦ se a = b, o mdc(a,b) é igual a a (ou a b) ◦ senão, substituir o maior pela diferença entre o maior e o menor e repetir o processo, até que os dois valores sejam iguais (isto é, até que a=b) UFMG DCC while end a e b devem ser inicializados antes do loop Qual deve ser a condição? Como deve ser o corpo do loop?

UFMG DCC m = input("m = "); n = input("n = "); a = m; b = n; while a <> b if a > b then a = a-b; else b = b-a; end printf("mdc(%g,%g) = %g",m,n,a)

= = = =4 8-4=44 44 Subtrações sucessivas podem ser feitas por divisão

UFMG DCC m = input("m = "); n = input("n = "); a = m; b = n; while b <> 0 aux = b b = modulo(a,b); a = aux; end printf("mdc(%g,%g) = %g",m,n,a) Porque não é necessário determinar qual, a ou b, é maior?

mod 12 = mod 8 = 4 48 mod 4 = 0 Em Scilab, o mdc de dois números a e b pode ser calculado usando-se a função pré-definida gcd, do seguinte modo: gcd(uint8([a b]))

 Suponha que temos uma tabela com notas finais de alunos, no seguinte formato:  Queremos construir um programa que leia a matrícula de um aluno e informe sua nota matrículanota …

 A tabela é representada no programa como uma matriz Nx2, onde a 1 a coluna contém os números de matrículas e a 2 a coluna contém as notas correspondentes: Notas = [ , , , 8.0 … ] 26

 A idéia é percorrer cada linha da tabela, a partir 1 a, até encontrar posição em que ocorre o número de matrícula procurado. 1.começamos a partir 1 a linha 2.se o valor na 1 a coluna e linha corrente é o n o. de matrícula procurado, então fim 3.senão, passamos para a próxima linha e repetimos, voltando ao passo 2 27 Vamos precisar de uma variável para manter a informação de qual é a linha corrente. O que acontece se o número de matrícula procurado não ocorre na tabela?

Notas = … m = input(”Informe a matrícula: ”); [N,C] = size(Notas); lin = 1; while Notas(lin,1) <> m & lin <= N lin = lin + 1 end if lin > N then printf(“Matrícula não encontrada”) else printf(”Nota = %g”,Notas(lin,2)) end

 Considere novamente a tabela com as notas finais de alunos.  Queremos agora obter os números de matrícula e notas de todos os alunos que foram aprovados. 29

 A idéia é percorrer toda a tabela, a partir da primeira linha, e selecionar as entradas na tabela tais que o valor na segunda coluna é ≥ começamos com uma matriz de aprovados vazia e iniciamos a pesquisa da 1 a linha 2.se o valor na linha corrente, 2 a col, for ≥ 6.0, adicionamos o aluno à matriz de aprovados. 3.senão, passamos para a próxima coluna e repetimos, voltando ao passo 2 30 De que variáveis vamos precisar? Qual deve ser a condição do loop?

Notas = … Aprov = [] [N,C] = size(Notas); lin = 1; while lin <= N if Notas(lin,2) >= 6.0 then Aprov = [Aprov; Notas(lin,:)] end lin = lin + 1 end disp(Aprov) Matriz vazia Estende a matriz Aprov

-->M = [1,7,3; 2,8,9] M = >[i,j] = find(M==3) j = 3. i = >[i,j] = find(M<= 3) j = i = >[l,c] = find(M > 10) c = [] l = []

-->M = [1,7,3; 2,8,9] M = >v1 = M(M==3) v1 = 3. -->v2 = M(M==10) v2 = [] 33 -->v3 = M(M<= 7) v3 = >v4 = M(M > 10) v4 = []