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

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

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

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 2016/2017

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

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

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 2012/13. Teórica 10

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

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Computação e Programação. Exame Época Normal

Problema 2 (1 valor) M = [50:2:248 ; 249:-2:51] Problema 3 (1 valor)

Banco de Dados I Introdução SQL

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

Computação e Programação. Exame Época de Recurso

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:

Informática para Ciências e Engenharias 2013/14. Teórica 10

Informática para Ciências e Engenharias B

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>

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

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Informática para Ciências e Engenharias (B) 2015/16. Teórica 10

Informática para Ciências e Engenharias (C) Trabalho Prático /18

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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

Nome: Número: Computação e Programação. Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

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 )

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Pedro Barahona 2016 / 17

Informática para Ciências e Engenharias-B 2017/18

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

Bases de Dados 2006/2007 Exame

18 - Consultas em SQL

15 - Introdução às Bases de Dados

17 - Consultas em 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

Nome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas

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

Manipulando a base de dados

Computação e Programação 201*/201* - 1º Semestre

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

Bases de Dados. DDL Data Definition Language

TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS

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

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

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:

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

Introdução ao PostgreSQL

COMPUTAÇÃO E PROGRAMAÇÃO

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

TUTORIAL SIMPLIFICADO DE MATLAB

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

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

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

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

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

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 8. Pedro Barahona 2016 / 17

Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada

IMPLEMENTAÇÃO DE BANCO DE DADOS

Banco de Dados. Professora: Luciana Faria

Exemplo 1. t = [0:2:20] ; g = 9.81; m = 68.1; cd = 0.25; v = sqrt(g*m/cd)*tanh(sqrt(g*cd/m)*t); plot(t, v) 2013/02/14

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

Bancos (Bases) de Dados

BANCO DE DADOS PARA WEB

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

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

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Projeto de Banco de Dados

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

Computação e Programação Exame 2ª Época

SQL Structured Query Language

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

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

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

BANCO DE DADOS I. Exercícios

SQL. Prof. Roger Cristhian Gomes

Aula 06 Sistemas Embarcados LT38C

Tarefa Orientada 17 Scripts

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);

Edital Nº. 04/2009-DIGPE 10 de maio de 2009

A linguagem SQL

MYSQL BÁSICO. 12 Horas Instrutor: Antonio Itamar Júnior

A Linguagem SQL. Tecnologia de Base de Dados. MSc. Eugénio. Macumbe

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

Informática para Ciências e Engenharias (B) 2016/17. Teórica 7

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

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

Bases de Dados 1º semestre

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

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

Disciplina: Banco de Dados Tema: SQL Parte 2

Transcrição:

Informática para Ciências e Engenharias - 2º semestre 2016/2017 2º Teste, 5 de Junho de 2016, 1h:45m versão B ICE: ; Nome: ; Nº Avisos: Sem consulta; a interpretação do enunciado é da responsabilidade do estudante; se necessário explicite na resposta a sua interpretação. Questão 1 1+1 valores Considere cada um dos fragmentos de programa apresentados nas alíneas seguintes. Para cada um deles, desenhe o gráfico produzido, indicando as coordenadas dos pontos marcados. y a) x = 0:4; for i = 1:length(x); y(i) = 4-(x(i)-2)^2; plot(x,y, * ); 3 1 1 3 b) v 5 v = [5,4.5,4,3.5,3,2.5,2] for i = 1:7 u(i) = 10-2*v(i); plot( u, v); 3 1 1 3 5 u Questão 2 2 valores Considere que no URL http://di.fct.unl.pt/ice/teste.txt está acessível um ficheiro com o seguinte conteúdo. http://xpto.fcsh.unl.pt/ucp/teste.txt Após a execução de todas as instruções, que vêm a seguir, quais os valores de bars(1), A, B e C? str = urlread( http://di.fct.unl.pt/ice/teste.txt ); colons = strfind(str, : ) Resposta bars = strfind(str, / ) bars(1) = 6 A = str(1:colons(1)-1); A = http B = str(bars(2)+1:bars()); B = xpto.fcsh.unl.pt/ucp/ C = str(bars()+1:)); C = teste.txt ICE 2016/17 2º semestre Teste 2 versão B 1

Questão 3 2,5 valores Considere a função MATLAB function func( fichin, fichout) fr = fopen( fichin, r ); fw = fopen( fichout, w ); while ~feof(fr) lin = fgetl(fr); vec_pos = strfind( lin, ; ); fprintf( fw, %s-%s\n, lin(vec_pos(2)+1:), lin(1:vec_pos(1)-1)); fclose(fr); fclose(fw); So o conteúdo do ficheiro in.txt o seguinte: id_1;maria;azul id_2;rui;verde id_3;carlos;vermelho e supondo que se executa no Octave o comando: prompt_do_octave>> func( in.txt, out.txt ) qual é o conteúdo do ficheiro out.txt? Questão 4 2,5 valores Resposta: A função func1 está implementada parcialmente. Esta função lê para um vetor de estruturas ve o conteúdo de um ficheiro de texto em que cada linha contém, separados por um ponto e vírgula, o nome de uma cidade e sua população. Após o carregamento do vetor de registos, a função determina a menor população registada. Escreva as partes em falta do código da função func1. % pmin = func1(nomefich) % nomefich e o nome de um ficheiro com pelo menos uma linha, em que cada linha tem % uma string com o nome de uma cidade separado por ponto e virgula do valor da sua populacao % pmin devera ser a menor populacao registada entre as várias cidades function pmin = func1( nomefich ) f = fopen( nomefich, r ); ve = [] while ~feof(f) linha = fgetl(f); pvs = strfind( linha, ; ); s.cidade = linha(1:pvs(1)-1); s.pop = str2num(linha(pvs(1)+1:)); ve = [ve,s]; fclose(f); pmin = ve(1).pop; for i = 2: length(ve) if ve(i).pop < pmin pmin = ve(i).pop; azul-id_1 verde-id_2 vermelho-id_3 ICE 2016/17 2º semestre Teste 2 versão B 2

Questão 5 4 valores Suponha que na base de dados carros.bd foram criadas e preenchidas duas tabelas com os seguintes comandos CREATE TABLE Carros ( matricula TEXT, modelo TEXT, cor TEXT, custo REAL, PRIMARY KEY(matricula)); CREATE TABLE Modelos ( modelo TEXT, marca TEXT, consumo REAL, peso INTEGER, lugares INTEGER, PRIMARY KEY(modelo)); INSERT INTO Carros Values( 15-CD-84, para2, azul, 7000); INSERT INTO Carros Values( 28-EP-45, clip, verde, 10000); INSERT INTO Carros Values( 39-LM-03, para2, cinza, 9000); INSERT INTO Carros Values( 28-PQ-34, safir, azul,15000); INSERT INTO Carros Values( 51-SA-NT, clip, branco,14000); INSERT INTO Carros Values( 08-OD-11, clip, azul,12000); INSERT INTO Modelos Values( clip, reno, 4.5, 1200, 5); INSERT INTO Modelos Values( para2, small, 3.7, 900, 2); INSERT INTO Modelos Values( safir, opal, 4.2, 1500, 7); Indique o resultado devolvido para cada um dos seguintes comandos (alínes a) até d)): a) SELECT marca, modelo FROM Modelos WHERE lugares >= 5; reno clip opal safir b) SELECT DISTINCT modelo FROM Carros; para2 clip safir c) SELECT matricula, custo FROM Modelos, Carros WHERE consumo = 4.5 AND Modelos.modelo=Carros.modelo; 28-EP-45 10000 51-SA-NT 14000 08-OD-11 12000 d) SELECT count (cor) FROM Modelos, Carros WHERE Carros.modelo = Modelos.modelo AND marca = small ; 2 e) Indique que comando SQL daria para obter a matrícula e a cor de todos os carros que consomem menos de 4 (litros/100km) SELECT matricula, cor FROM Modelos, Carros WHERE consumo < 4.0 AND Modelos.modelo=Carros.modelo; ICE 2016/17 2º semestre Teste 2 versão B 3

Questão 6 1.75 + 1.75 + 1 valores Considere as tabelas Carros e Modelos da pergunta 5 que estão guardadas numa base de dados com o nome carros.bd. Prete-se que escreva o código de duas funções que, em conjunto, permitem escrever num ficheiro o conteúdo dos campos matricula e cor dos registos da tabela Carros de todos os carros em que o campo custo é não menor que um valor especificado (parâmetro customin da função obtemregistos). Cada resultado ocupa uma linha, so a matrícula e cor de cada carro separados por dois pontos :, devo a primeira linha indicar o nome dos campos, igualmente separados por dois pontos. Para o efeito, decidiu-se dividir a resolução do problema em duas funções obtemregistos e imprimirregistos. Nesta pergunta e nas seguintes admita que tem disponíveis as funções: % result = sqlite(sql, db) % Executa a instrucao SQL guardada na string sql na base de dados com o nome db. % Retorna o resultado que o SQLite3 retornar. function result = sqlite( sql, db ) % recs = parserecords(sqlresult, namestring) % Retorna no vetor de estruturas recs os registos devolvidos pelo SQLite3, que estao na string sqlresult. % A string namestring tem os nomes dos campos pedidos `a BD, separados por ' '. % Os campos de recs tem esses mesmos nomes. function recs = parserecords( sqlresult, namestring ) a) Preencha o código da função obtemregistos % vea = obtemregistos(nomebd, customin) % nomebd é o nome da base de dados; customin é o menor valor aceite para o custo do carro % vea é um vetor de estruturas que contém os campos matricula e cor dos carros seleccionados function vea = obterregistos( nomebd, customin) sql = sprintf( SELECT matricula, cor FROM Carros WHERE custo >= %s ;, customin); x = sqlite(sql,nomebd); vea = parserecords(x, matricula cor); b) Preencha o código da função imprimirregistos % imprimirregistos(veb, nomefichresultados) % veb é um vetor de estruturas do tipo devolvido pela funcao obterregistos % nomefichresultados é o nome do ficheiro onde serão escritos os resultados % Cada resultado ocupa uma linha, so a matricula e a cor separados por dois pontos function imprimirregistos(veb, nomefichresultados) fid = fopen(nomefichresultados, w ) fprintf(fid, matricula:cor ); for i = 1:length(veB) fprintf(fid, %s:%s\n, veb(i).matricula, veb(i).cor); ; fclose(fid) c) Supondo que a base de dados carros.bd já foi criada e preenchida, e que na diretoria corrente existem os ficheiros obterregistos.m e imprimirregistos.m, quais os comandos a dar no interpretador para obter um ficheiro com o nome carotes.txt que contenha os campos matricula e cor de todos os registos da tabela Carros com custo mínimo de 13000. >> x = obterregistos( carros.bd, 13000 ) >> imprimirregistos(x, caros.txt ) ICE 2016/17 2º semestre Teste 2 versão B 4

Questão 7 2.5 valores Considere novamente a base de dados definida na pergunta 5. Prete-se o código de uma função que recebe como parâmetros o nome de 2 campos da tabela Modelos consumo, peso ou lugares e que marca num gráfico, através de um símbolo + a azul, todos os pontos (x,y) obtidos na base de dados em x é o valor do 1º parâmetro escolhido e y é o valor do 2º parâmetro escolhido % grafico(nomebasedados, par1nome, par2nome) % nomebasedados é o nome da base de dados onde estão as tabelas % par1nome é o nome do parâmetro que aparece nas abcissas % par2nome é o nome do parâmetro que aparece nas ordenadas function grafico(nomebasedados, par1nome, par2nome) sql = sprintf( SELECT %s, %s FROM Modelos, par1nome, par2nome); res = sqlite(sql, nomebasedados); s = parserecords(res, c1 c2 ); n = length(s) x = zeros(1,n); y = zeros(1,n); for i = 1:length(s) x(i) = str2num(s(i).c1); y(i) = str2num(s(i).c2); ; plot(x,y, +b ); // Apice Sintaxe de Comandos SQL utilizados neste teste Comando SQL CREATE TABLE nometabela ( nomecampo tipo, nomecampo tipo,, PRIMARY KEY ( ) ); Notas Alguns tipos são INTEGER, REAL e VARCHAR( ) INSERT INTO nometabela VALUES ( valorcampo1, valorcampo2, ); SELECT qualificativo nomecampo, FROM NomeTabela, WHERE expressão ; A expressão inclui nomes de campos; pode incluir o operador lógicos AND, os operadores relacionais >, <, >=, <= e também o operador LIKE O nome do campo poder substituído por * O qualificativo pode não parecer, mas exemplos de qualificativos são DISTINCT, MAX e COUNT. ICE 2016/17 2º semestre Teste 2 versão B 5