Aulas de Informática para Ciências e Engenharias 2024/2025 (PDF)
Document Details
NOVA School of Science and Technology
2024
Tags
Summary
Estas notas de aula cobrem tópicos de informática para estudantes de ciências e engenharia, focando em conceitos como ciclos, strings, redes e obtenção de dados via internet. Os exemplos apresentados demonstram aplicação prática destes conceitos.
Full Transcript
Informática para Ciências e Engenharias ICE 2024/2025 ©2024 FCT Universidade Nova de Lisboa Ciclos WHILE Revisitar Strings Aula 5 Informática para as C...
Informática para Ciências e Engenharias ICE 2024/2025 ©2024 FCT Universidade Nova de Lisboa Ciclos WHILE Revisitar Strings Aula 5 Informática para as Ciências e Engenharias input/print 2024/2025 Introdução às redes Obtenção de dados via Internet 2 Revendo Ciclos A instrução for permite executar um bloco de instruções um número de vezes pré-determinado: for e in L: instruções Como executar um bloco de instruções enquanto uma condição se verificar? Exemplo: Procurar um elemento numa sequencia (e parar quando encontrar) Calcular um valor iterativamente até chegar a uma dada precisão Executar uma ação enquanto não se tem um dado valor Geralmente, quando o "for e in L" não pode ser usado 3 Problema: procurar valor numa sequência Exemplo do problema: Dada uma lista de números L, verificar onde está o 1º valor v Simples: L.index(v) Mas se v não está em L dá erro. Se quisermos que devolva, por exemplo, -1? Devolver a 1ª posição onde v aparece ou -1 se não está em L 1ª tentativa (errada): pos = -1 for i in range(len(L)): if L[i] == v: pos = i # se encontrou o 1º não deve continuar a procurar # não vale a pena e pode encontrar outro v 4 Ciclo WHILE A instrução while permite repetir um bloco de instruções enquanto uma condição se verifica (é True) Sintaxe: while condição : enquanto semáforo está vermelho: instruções aguarde Execução: A condição é avaliada Se for verdadeira, executam-se as instruções e volta-se ao início Se for falsa, não se faz mais nada → termina o while. 5 Exemplo: Pesquisa de 5 em [3, 9, 5] Procurar enquanto não encontra: i= 0; V[i] ≠ 5? Sim. Continua à procura... i= 1; V[i] ≠ 5? Sim. Continua à procura... i= 2; V[i] ≠ 5? Não. Portanto, V[i] == 5; encontrou! Procurar v em V, sabendo que v está lá: i=0 Enquanto V[i] ≠ v : i=i+1 No fim, de certeza que V[i] tem v e i tem onde v está E se v não está? 6 Exemplo: Pesquisa de 7 em [3, 9, 5] Procurar enquanto não encontra e não chegou ao fim: i= 0; V[i] ≠ 7? Sim. Continua... i= 1; V[i] ≠ 7? Sim. Continua... i= 2; V[i] ≠ 7? Sim. Continua... i= 3; Não se pode aceder a V[i]; 7 não está em V!! Procurar v em V: i=0 Enquanto i < len (V) and V[i] ≠ v : i=i+1 No fim: se i < len(V), de certeza que V[i] == v; se i ≥ len(V), v não está em V. 7 Ciclo WHILE : exemplo Dada uma lista de números, procurar um valor na lista. def procura(v: float, L: list[float])->int : """ Verifica se v se encontra em L. Retorna indice do primeiro v ou -1 se não encontrou """ i = 0 while i < len(L) and L[i] != v : i = i + 1 if i