2 o Teste de ICE-B, 8 de Junho de 2019 (Versão B)

Documentos relacionados
Informática para Ciências e Engenharias - 2º semestre 2018/2019

2 o Teste de ICE-B, 6 de Junho de 2018 (Versão B)

Exane de ICE-B, 26 de Junho de 2018 (Versão A)

Informática para Ciências e Engenharias - 2º semestre 2016/2017

Informática para Ciências e Engenharias - 2º semestre 2016/2017

Informática para Ciências e Engenharias - 2º semestre 2017/2018

Informática para Ciências e Engenharias - 2º semestre 2017/2018

Informática para as Ciências e Engenharias - 2º semestre 2015/2016

Informática para as Ciências e Engenharias - 2º semestre 2017/2018

Informática para as Ciências e Engenharias - 2º semestre 2015/2016

Informática para as Ciências e Engenharias - 2º semestre 2016/2017

1 o Teste de ICE-B, 4 de Maio de 2019 (Versão A)

15 - Introdução às Bases de Dados

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

ICE-B Sqlite e Python. Ludwig Krippahl

17 - Consultas em SQL

18 - Consultas em SQL

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Banco de Dados I Introdução SQL

MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Importar e Exportar Dados

Banco de Dados. Professora: Luciana Faria

Tarefa Orientada 9 Base de Dados Pagamentos

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Informática para Ciências e Engenharias 2012/13. Teórica 10

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

Fundamentos de Banco de Dados Postgre com Sql

Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!

Manipulação de Dados com SQL

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

IMPLEMENTAÇÃO DE BANCO DE DADOS

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

Técni n c i as e L i L n i g n u g age g ns n p ara r Ba B nc n o d e D ados I ACCESS

Utilizando o Postgres - comandos SQL para a manipulação de dados

Para criarmos um banco de dados no MySql, utilizamos à instrução:

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Aula 06 Sistemas Embarcados LT38C

Bases de Dados 1º semestre

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

AULA 8 EXEMPLOS CRIAR AS TABELAS PROPOSTAS NA AULA E INSERIR OS REGISTROS SUGERIDOS

BCD29008 Banco de dados

SQL. Prof. Roger Cristhian Gomes

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

BANCO DE DADOS PARA WEB

Bases de Dados. DDL Data Definition Language

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

TLBD II. Continuação

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

A linguagem SQL

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Fundamentos de Programação

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

Entrada e saída. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Banco de dados 1. Linguagem SQL DDL e DML Parte 2. Professor: Victor Hugo L. Lopes

As Instruções DML. As Instruções de manipulação de dados(dml) em SQL são representados por: Modificam o estado do banco de dados:

SQL Structured Query Language

A U L A 8 C O N S U L T A S U N I N D O D U A S O U M A I S T A B E L A S P A R T E 2

RESOLUÇÃO. Computação e Programação (2009/2010-1º Semestre) 1º Teste (11/11/2009) Nome. Número. Leia com atenção os pontos que se seguem:

FUNDAMENTOS DA PROGRAMAÇÃO 1º Teste, 19 de abril de 2013, 1h30m

Sistemas de Bases de Dados 1.º teste (com consulta limitada: 2 folhas identificadas) - Duração: 2 horas

Flickr, shindotv/ / BASES DE DADOS. Laboratórios de Informática João Paulo Barraca, André Zúquete, Diogo Gomes

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

Informática I. Aula 8. Aula 8-25/09/2006 1

Fundamentos da Programação

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A

Disciplina: Banco de Dados Tema: SQL Parte 2

Bancos (Bases) de Dados

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

Tarefa Orientada 17 Scripts

A U L A 9 F U N Ç Õ E S A G R E G A D A S E C Á L C U L O S

SQL (Tópicos) Structured Query Language

Informática para Ciências e Engenharias-B 2018/19

1º Teste Sem consulta

U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES:

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

Manipulando a base de dados

MySql. Introdução a MySQL. Andréa Garcia Trindade

Bases de Dados. Lab 1: Introdução ao ambiente

C A P I T U L O 10 F U N Ç Õ E S I N T E R N A S P H P P A R A B A N C O D E D A D O S

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Fundamentos de Programação

A U L A 1 0 C R I A N D O V I E W S V I E W S ( V I S Õ E S )

Curso PHP Aula 08. Bruno Falcão

1º Teste Sem consulta

INSERT INTO shop VALUES (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),(3,'C',1.69), (3,'D',1.25),(4,'D',19.95);

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Grupo 2 - Implementação de uma classe simples

Introdução ao PostgreSQL

Prova de Tecnologia da Informação

Transcrição:

2 o Teste de ICE-B, 8 de Junho de 2019 (Versão B) Três páginas com 7 perguntas+tp2, três folhas de resposta. Duração total: 2 horas Atenção: Preencha cuidadosamente cada folha de resposta, escrevendo o seu nome e o número de aluno no canto superior direito e pintando os círculos correspondentes a cada dígito do número. Por baixo do seu nome, pinte também os círculos correspondentes ao número de filas de alunos à sua frente e ao número de lugares para alunos à sua direita, na sua fila. Cada pergunta tem um número único; responda apenas dentro da caixa respectiva. Pode usar o enunciado como folha de rascunho mas não escreva fora das caixas nem no verso das folhas de resposta. Pergunta 1 [2 valores] Considere cada um dos fragmentos de programa apresentados nas aĺıneas seguintes. Para cada um deles, desenhe na folha de resposta o gráfico produzido indicando também os valores nos eixos. Gráfico A Gráfico B import matplotlib.pyplot as plt y = [4,2,1,5] x = [] for val in range(4): x.append(val) plt.plot(x,y, o ) import matplotlib.pyplot as plt a = [1,2,3,4] b = [] for v in a: if v<3: b.append(4-v) else: b.append(v) plt.plot(a,b) Pergunta 2 [2 valores] Considere que na sua área de trabalho está presente um ficheiro de nome camoes.txt contendo estas linhas à esquerda. Indique os valores das variáveis a, b e c após a execução destas instruções à direita. Amor é fogo que arde sem se ver; É ferida que dói e n~ao se sente; É um contentamento descontente; É dor que desatina sem doer; lines = open("camoes.txt","r").readlines() line = lines[2] parts = line.split( ) a = parts[0] b = parts[:2] c = parts[0]+parts[-1] Pergunta 3 [2,5 valores] Considere que tem a função func criada e o ficheiro in.txt na sua pasta de trabalho: def func(leitura, escrita): "documentacao omitida..." lines = open(leitura).readlines() ofil = open(escrita, w ) Ficheiro in.txt (com 3 linhas) for line in lines: Cam~oes=1580 clean = line.strip() Bocage=1805 ps = clean.split( = ) Pessoa=1935 time = 2019-int(ps[-1]) if time>200: ofil.write( {0}-{1}\n.format(time,ps[0])) ofil.close() Supondo que se executa o comando func( in.txt, out.txt ), escreva na folha de resposta o conteúdo do ficheiro out.txt

2 Pergunta 4 [2,5 valores] A função massa total está implementada parcialmente. Esta função lê para uma lista de dicionários os dados num ficheiro de texto no qual cada linha tem o elemento, o número de átomos e a massa atómica, separados pelo carácter : (dois pontos). Após carregar os registos, a função usa a lista de dicionários para calcular a massa total, somando o produto de cada massa atómica pelo número de átomos. Preencha o código em falta na função (assinalado pelas linhas tracejadas). Pergunta 5 [4 valores] Preocupado com o vício com o Heroes of the Storm, o João criou a base de dados jogo.bd desta forma para monitorizar a sua actividade: CREATE TABLE Herois (nome TEXT, tipo TEXT, origem Text INTEGER, PRIMARY KEY(nome)); CREATE TABLE Jogos (data TEXT, nome TEXT, horas REAL, ganhos INT, perdidos INT); INSERT INTO Herois VALUES ("Nova","Ranged Assassin","Starcraft"); INSERT INTO Herois VALUES ("Valeera","Melee Assassin","Warcraft"); INSERT INTO Herois VALUES ("Malfurion","Healer","Warcraft"); INSERT INTO Herois VALUES ("D.Va","Bruiser","Overwatch"); INSERT INTO Herois VALUES ("Valla","Ranged Assassin","Diablo"); INSERT INTO Herois VALUES ("Probius","Ranged Assassin","Starcraft"); INSERT INTO Herois VALUES ("Lt. Morales","Healer","Starcraft"); INSERT INTO Herois VALUES ("Rehgar","Healer","Warcraft"); INSERT INTO Herois VALUES ("Genji","Ranged Assassin","Overwatch"); INSERT INTO Herois VALUES ("Zagara","Ranged Assassin","Starcraft"); INSERT INTO Jogos VALUES ("2019-05-12","Nova",3.5,2,1); INSERT INTO Jogos VALUES ("2019-05-12","Valeera",6.2,1,4); INSERT INTO Jogos VALUES ("2019-05-13","Malfurion",2.6,1,2); INSERT INTO Jogos VALUES ("2019-05-13","Nova",9.8,3,2); INSERT INTO Jogos VALUES ("2019-05-14","Malfurion",10.2,1,8); INSERT INTO Jogos VALUES ("2019-05-15","D.Va",8.6,3,0); Indique o resultado de cada um dos seguintes comandos SQL (aĺıneas a, b, c, d). Tenha atenção à posição das caixas na folha de resposta 5.a) SELECT DISTINCT data FROM Jogos ORDER BY data; 5.b) SELECT horas FROM Jogos WHERE data = "2019-05-13"; 5.c) SELECT Herois.nome, horas FROM Herois,Jogos WHERE Herois.Nome = Jogos.nome AND horas > 5; 5.d) SELECT max(horas) FROM Jogos,Herois WHERE Herois.Nome = Jogos.nome; Atenção: a próxima aĺınea tem caixa de resposta na segunda folha 5.e) Indique que comando SQL daria para obter todos os tipos de herói, sem repetições, com os quais o João jogou mas só contando heróis cuja origem é o jogo Warcraft. Pergunta 6 [4,5 valores] Considere as tabelas Herois e Jogos da pergunta 5, na base de dados jogo.bd. Pretende-se que escreva o código de duas funções que, em conjunto, permitam escrever num ficheiro o conteúdo dos campos nome e tipo dos registos da tabela Herois de todos os heróis de uma dada origem (parâmetro origem da função select records). Cada registo ocupa uma linha do ficheiro, sendo o nome e o tipo de cada herói separados por ponto e vírgula (carácter ;). Adicionalmente, a primeira linha deve indicar o nome dos campos (nome e tipo), igualmente separados por ponto e vírgula. Para o efeito, decidiu-se dividir a resolução do problema em duas funções: select records, que devolve uma lista de dicionários com os registos seleccionados, e write records que escreve uma lista de dicionários com os registos para o ficheiro indicado. Nesta pergunta e nas seguintes admita que tem disponível a função query db dada nas aulas teóricas e que já foi importado o módulo sqlite3:

3 import sqlite3 def query_db(db_name,query): """devolve uma lista de dicionários com o resultado de um comando SELECT cada dicionário na lista tem como chaves os nomes das colunas seleccionadas db_name é o nome da base de dados; query é o comando SQL do SELECT"""... 6.a) Preencha o código da função select records que recebe como argumentos nome bd com o nome da base de dados e origem com a origem e devolve devolve uma lista de dicionários com o nome e tipo de todos os heróis dessa origem nessa base de dados. 6.b) Preencha o código da função write records(records, out file) que recebe como argumentos records, que é uma lista de dicionários, cada um com chaves nome e tipo, e out file com o nome do ficheiro onde serão escritos os resultados. Cada resultado ocupa uma linha com nome e tipo separados por ; e o ficheiro deve ter uma linha de cabeçalho indicando os nomes dos campos, com o mesmo separador. 6.c) Supondo que a base de dados alunos.bd já foi criada e preenchida, e que as funções referidas anteriormente estão implementadas, indique os comandos a dar no interpretador para gerar o ficheiro com o nome diablo.txt contendo os nomes e tipos dos heróis nessa base de dados cuja origem é o jogo Diablo. Pergunta 7 [2,5 valores] Considere novamente a base de dados definida na pergunta 5. Pretende-se o código de uma função que recebe como parâmetros o nome da base de dados e o nomes de dois campos numéricos da tabela Jogos, que poderão ser horas, ganhos ou perdidos, e que marca num gráfico, com o símbolo x a verde, todos os pontos obtidos na base de dados em que o valor de x será o do primeiro campo escolhido e o valor de y o do segundo. Defesa do Trabalho 2 TP2 a) Para carregar cada um dos ficheiros de compostos era preciso inserir informação nas tabelas Compostos e Atributos. Foi preciso usar ciclos? Se sim, para quê? TP2 b) No comando LISTA era preciso encontrar os compostos que correspondiam à fórmula empírica e que tinham um atributo indicado opcionalmente. Explique como é que seleccionou os compostos que tinham esse atributo, no caso de estar especificado. TP2 c) Também no comando LISTA era preciso comparar a fórmula química com a fórmula empírica. Explique resumidamente como determinou se estas correspondiam. TP2 d) Os comandos REPORT e BASE DADOS especificavam, respectivamente, o nome do ficheiro de relatório para as listas de compostos e o nome do ficheiro da base de dados. Explique resumidamente como resolveu no seu programa o problema de guardar estes nomes e usá-los onde necessário. TP2 e) Se o ficheiro de ordens tiver um comando BASE DADOS especificando o nome de uma base de dados, depois comandos para operar sobre essa base de dados, depois um comando BASE DADOS especificando o nome de uma base de dados diferente e mais operações, o seu programa consegue executar cada operação na base de dados correcta? Explique como garante isso. CREATE TABLE nometabela ( nomecampo tipo, nomecampo tipo,..., PRIMARY KEY ( ) ); Alguns tipos são INTEGER, REAL e VARCHAR(... ) INSERT INTO nometabela VALUES ( valorcampo1, valorcampo2,...); SELECT qualificativo nomecampo,... FROM NomeTabela,... WHERE express~ao ; A expressão pode incluir AND e OR e operadores relacionais (>, <, >=, <=) e LIKE. O nome do campo poder substituído por *. O qualificativo pode não aparecer ou ser um como, por exemplo, DISTINCT, MAX e COUNT.

1) Gráfico A 1) Gráfico B 2) a= b= c= 3) 4) def massa_total(nome_fich): """nome_fich e o nome de um ficheiro nao vazio no qual cada linha tem o elemento, o número de átomos e a massa atómica Devolve a massa total de todos os átomos no ficheiro""" lines = open(nome_fich) atoms = [] for line in lines: ps = reg = {} reg[ num ] = int(ps[1]) reg[ mass ] = atoms.append(reg) for d in atoms: return massa 5a) 5b) 5c) 5d)

5 e) 6 a) def select records(nome bd, origem): "Devolve lista de dicionários com nome e tipo de heróis da origem" 6 b) def write records(records, out file): "Escreve para out file os nomes e tipos dos heróis em records" 6 c) 7) def grafico(nome bd, val1, val2): "desenha o grafico dos valores indicados da tabela Jogos"

TP2 a) TP2 b) TP2 c) TP2 d) TP2 e)