MAC2166 Introdução à Computação

Tamanho: px
Começar a partir da página:

Download "MAC2166 Introdução à Computação"

Transcrição

1 Departamento de Ciência da Computação - IME - USP MAC2166 Introdução à Computação Escola Politécnica - Primeiro Semestre de 2014 Prova 2 QUESTÃO 1 (str,str,str) -> str que recebe três sequências de caracteres (strings) não vazias, sendo que a terceira é um caractere coringa. A função deve devolver uma sequência que é uma cópia da primeira sequência, porém substituindo-se as ocorrências dos caracteres da segunda sequência pelo caractere coringa, obedecendo a ordem de ocorrência em ambas as sequências. Exemplos: str1: "Lá vem o pato pato aqui pato acolá" str2: "papa" coringa: "X" Saída: "Lá vem o XXto XXto aqui pato acolá" str1: "Era uma casa muito engraçada não tinha teto, não tinha nada" str2: "cratera" coringa: "*" Saída: "Era uma *asa muito eng**çada não *inha t*to, não tinha nada" str1: " " str2: "130" coringa: "X" Saída: " " str1: "ABCEFG" str2: "ABCDEFGHIJK" coringa: "?" Saída: "???EFG" 1: (str, str, str) -> str novo_str = '' string vazio i = 0 while i < len(str1) and j < len(str2): if str1[i] == str2[j]: novo_str += coringa copia o resto do string str1 while i < len(str1): 2: usa fatiamento para copiar o final do novo string (str, str, str) -> str novo_str = "" string vazio i = 0 while i < len(str1) and j < len(str2): if str1[i] == str2[j]: novo_str += coringa copia o resto do string str1 através de fatiamento novo_str += str1[i:] 3. (str, str, str) -> str novo_str = "" string vazio len1 = len(str1) len2 = len(str2) for i in range(len1): determine próximo caractere de novo_str

2 if j < len2 and str1[i] == str2[j]: caractere = coringa caractere = str1[i] concatena com novo_str novo_str += caractere 4: (str, str, str) -> str novo_str = "" string vazio for i in range(len(str1)): determine próximo caractere de novo_str if j < len(str2) and str1[i] == str2[j]: novo_str += coringa QUESTÃO 2 Dadas duas sequências x 1, x 2,...,x n e y 1, y 2,..., y n, n > 0, de números reais, os respectivos valores médios são dados por x = (x 1 + x x n )/n e y = (y 1 + y y n )/n A diferença x i x (e, similarmente, y i y), i= 1, 2,...,n, é denominada variação. O coeficiente de correlação entre os valores das sequências x 1, x 2,...,x n e y 1, y 2,..., y n é definido por: r = [ i=1,2,...n (x i x) (y i y)] / [( i=1,2,...n (x i x) 2 ) 0.5 ( i=1,2,...n (y i y) 2 ) 0.5 ] Dada uma tabela com as notas de um turma, gostaríamos de verificar se há alguma correlação entre as notas de EP e notas de prova. Em estatística, o coeficiente de correlação pode ser utilizado para tal fim. Suponha que a primeira coluna da tabela contém o nome dos alunos e as demais colunas contêm as notas de EPs e Provas. Por exemplo, a tabela abaixo é de uma turma com 5 alunos e contém as notas do EP1, P1, EP2 e P2. O traço indica uma nota que não está disponível. NOME EP1 P1 EP2 P2 Fulano Beltrano Sicrano Batman Pinguin Para resolver o problema acima, foi escrito o seguinte programa que lê e imprime uma tabela, lê o índice das colunas que correspondem às sequências para as quais deseja-se calcular o coeficiente de correlação, e então calcula e imprime o coeficiente de correlação. A exemplo do EP3, um valor que não está disponível é representado pelo valor None e deve ser ignorado nos cálculos. import math def main(): tabela = le_tabela() imprime_tabela(tabela) cx = int(input("coluna da primeira seq: ")) cy = int(input("coluna da segunda seq: ")) corr = coeficiente_correlacao(tabela, cx, cy) if corr is None: print("o coeficiente não pode ser calculado") print("a correlação é %f" %corr) Suponha também que as funções abaixo já estão prontas: def le_tabela(): (None) -> tabela Lê, de um arquivo cujo nome é fornecido pelo usuário, uma tabela como a especificada acima. Devolve a tabela em uma lista de listas, correspondendo às linhas da tabela. Um valor não disponível é representado por None. def imprime_tabela(tabela): (tabela) -> None Recebe uma tabela e imprime-a. Você deverá completar o programa escrevendo duas funções especificadas nos itens (a) e (b) a seguir. item (a) def adiciona_coluna_variação(tabela, col): que recebe uma tabela (tabela) como a definida anteriormente e adiciona uma coluna à tabela. A coluna a ser adicionada corresponde à variação de cada valor da coluna de índice col. A variação de um valor None é None. Para o cálculo da média dos valores na coluna de índice col, desconsidere os valores None

3 1: Versão com "for variavel in range():..." def adiciona_coluna_variação(tabela,col): (tabela) -> tabela Recebe um tabela 'tabela' e o índice 'col' de uma coluna e acrescenta a tabela uma coluna correspondente à variações dos valores na coluna de índice 'col'. Um desvio será None se o valor na coluna for None. calcule a media media = media_coluna(tabela,col) n_lin = len(tabela) número de linhas da tabela calcule variação e adicione an coluna for i in range(n_lin): valor = tabela[i][col] if valor!= None: implica que media!= None tabela[i].append(valor-media) tabela[i].append(none) - def media_coluna(tabela,col): (tabela, int) -> float ou None Recebe uma tabela 'tabela' e calcula a média dos valores na coluna 'col'. Os valores na coluna que são None são desconsiderados. Se a coluna não possui nenhum valor diferente de None a função retorna None calcule a soma e o numero de valores na coluna soma_valores = 0 no_valores = 0 n_lin = len(tabela) número de linhas da tabela for i in range(n_lin): valor = tabela[i][col] if valor!= None: soma_valores += valor no_valores += 1 verifique a a matriz possui algum valor if no_valores > 0: return soma_valores / no_valores se chegou aqui no_valores == 0 2: Versão com "for elemento in lista:..." def adiciona_coluna_variação(tabela,col): (tabela) -> tabela Recebe um tabela 'tabela' e o índice 'col' de uma coluna e acrescenta a tabela uma coluna correspondente à variações dos valores na coluna de índice 'col'. Um desvio será None se o valor na coluna for None. calcule a media media = media_coluna(tabela,col) if linha[col]!= None: implica que media!= None linha.append(linha[col]-media) linha.append(none) - def media_coluna(tabela,col): (tabela, int) -> float ou None Recebe uma tabela 'tabela' e calcula a média dos valores na coluna 'col'. Os valores na coluna que são None são desconsiderados. Se a coluna não possui nenhum valor diferente de None a função retorna None calcule a soma e o numero de valores na coluna soma_valores = 0 no_valores = 0 desconsidere os valores que são None if linha[col]!= None: soma_valores += linha[col] no_valores += 1 verifique se a matriz possui algum valor if no_valores > 0: return soma_valores / no_valores se chegou aqui no_valores == 0 item (b) def coeficiente_correlacao(tabela, col1, col2): que recebe uma tabela (tabela) e os índices col1 e col2 de duas colunas da tabela. A função deve: acrescentar duas colunas à tabela: uma com as variações de cada valor na coluna de índice col1 e outra com as variações de cada valor na coluna de índice col2, imprimir a tabela (usando a função dada), e calcular e devolver o coeficiente de correlação entre as sequências de valores nas colunas de índices col1 e col2. OBS.: No cálculo do coeficiente, os termos que envolvem um valor None não devem ser considerados. Caso não seja possível calcular o coeficiente, deve-se devolver None. Use a função do item anterior, mesmo que você não a tenha feito.

4 1: Solução ideal. Usa um filtro. import math def adiciona_coluna_variacao(tabela, col): soma = 0 soma += linha[col] if len(tabela) > 0: media = soma / len(tabela) linha.append(linha[col] - media) def filtro(tabela, col): subtab = [] if linha[col] is not None: subtab.append(linha) return subtab def coeficiente_correlacao(tabela, col1, col2): subtab = filtro(filtro(tabela, col1), col2) if len(subtab) == 0: adiciona_coluna_variacao(subtab, col1) adiciona_coluna_variacao(subtab, col2) somaxy = 0 somax2 = 0 somay2 = 0 for linha in subtab: somaxy += linha[-2] * linha[-1] somax2 += linha[-2] * linha[-2] somay2 += linha[-1] * linha[-1] if somax2!= 0 and somay2!= 0: return somaxy/math.sqrt(somax2*somay2) trecho de codigo para testar as funções não faz parte da solução tabela = [['Fulano ', 2, 2, None, 8], ['Beltrano', 1, None, None, 4], ['Sicrano ', None, 2, 3, 4], ['Batman ', 1, 3, 4, 4], ['Pinguin ', None, 2, 3, 4]] print(linha[0], end='') for x in linha[1:]: if x is not None: print('%3d' %x, end=''); print(' -', end='') print() print() print('correlacao 1, 2:', coeficiente_correlacao(tabela, 1, 2)) print('correlacao 1, 3:', coeficiente_correlacao(tabela, 1, 3)) print('correlacao 1, 4:', coeficiente_correlacao(tabela, 1, 4)) print('correlacao 2, 3:', coeficiente_correlacao(tabela, 2, 3)) print('correlacao 2, 4:', coeficiente_correlacao(tabela, 2, 4)) print('correlacao 3, 4:', coeficiente_correlacao(tabela, 3, 4)) 2: Versão com "for variável in range(...):..." def correlacao(tabela,col1,col2): (tabela, int, int) -> float ou None Recebe uma tabela 'tabela' e índices 'col1' e 'col2' de duas colunas da tabela e calcula e retorna o coeficiente de correlação entre as sequências de valores nessas colunas. Retorna None adicione a coluna com as variações dos valores na coluna col1 adiciona_coluna_variação(tabela,col1) adicione a coluna com as variações dos valores na coluna col2 adiciona_coluna_variação(tabela,col2) imprima a nova tabela print_tabela(tabela) soma_numerador = 0 somax2 = 0 somay2 = 0 índices das colunas com as variaçõa... idx_var_col1 = len(tabela[0])-2 índice da coluna com a variação da coluna col1 idx_var_col2 = len(tabela[1])-1 índice da coluna com a variação da coluna col2 no_lin = len(tabela) número de linhas da tabela for i in range(no_lin): valor_col1 = tabela[i][idx_var_col1] valor_col2 = tabela[i][idx_var_col2] if valor_col1!= None and valor_col2!= None: soma_numerador += valor_col1 * valor_col2 if valor_col1!= None: somax2 += valor_col1 * valor_col1 if valor_col2!= None: somay2 += valor_col2 * valor_col2 cuidado para não dividir por zero if somax2 > 0 and somay2 > 0: return soma_numerador / math.sqrt(somax2 * somay2) 3: Versão com "for elemento in lista:..." def correlacao(tabela,col1,col2): (tabela, int, int) -> float ou None Recebe uma tabela 'tabela' e índices 'col1' e 'col2' de duas colunas da tabela e calcula e retorna o coeficiente de correlação entre as sequências de valores nessas colunas. Retorna None

5 adicione a coluna com as variações dos valores na coluna col1 adiciona_coluna_variação(tabela,col1) adicione a coluna com as variações dos valores na coluna col2 adiciona_coluna_variação(tabela,col2) imprima a nova tabela print_tabela(tabela) no_valores = 0 número de valores soma_numerador = 0 somax2 = 0 somay2 = 0 índices das colunas com as variaçõa... idx_var_col1 = -2 índice da coluna com a variação da coluna col1 idx_var_col2 = -1 índice da coluna com a variação da coluna col2 if linha[-2]!= None and linha[-1]!= None: soma_numerador += linha[-2]*linha[-1] somax2 += linha[-2]*linha[-1] somay2 += linha[-2]*linha[-1] cuidado para não dividir por zero if somax2 > 0 and somay2 > 0: return soma_numerador / math.sqrt(somax2 * somay2) QUESTÃO 3 item (a) que recebe uma matriz 'M e devolve True caso a matriz seja simétrica em relação à sua coluna central, e devolve False em caso contrário. Suponha que a matriz é de inteiros, quadrada e de dimensão ímpar. Exemplo: A matriz abaixo à esquerda é simétrica em relação à sua coluna central. Já a matriz à direita não é item (b) 1: (matriz) -> bool Recebe uma matriz quadrada de ordem ímpar é retorna True se a matriz fo simétrica em relação a coluna central e False em caso contrário. a matriz é simétrica até que se prove o contrário simetrica = True n = len(m) dimensão da matriz i = 0 while i < n and simetrica: while j < n // 2 and simetrica: if M[i][j]!= M[i][n-j-1]: simetrica = False return simetrica 2: (matriz) -> bool Recebe uma matriz quadrada de ordem ímpar é retorna True se a matriz fo simétrica em relação a coluna central e False em caso contrário. n = len(m) dimensão da matriz for i in range(n): for j in range(n//2): if M[i][j]!= M[i][n-j-1]: return False return True 3: Versão "pythoniana" (matriz) -> bool Recebe uma matriz quadrada de ordem ímpar é retorna True se a matriz fo simétrica em relação a coluna central e False em caso contrário. return all( x == list(reversed(x)) for x in M )

6 que recebe uma matriz M de inteiros, um inteiro positivo ímpar k, os índices i (linha) e j (coluna) de uma posição da matriz, e devolve uma matriz que é uma cópia da submatriz de M, quadrada e de dimensão k, centrada na posição [i][j] da matriz. Você pode supor que a submatriz k k está inteiramente contida em M. Exemplo: Supondo que M é a matriz abaixo à esquerda, k é 3, e i e j são 2 e 1, respectivamente, a submatriz a ser devolvida é a que está abaixo à direita: M = : (matriz, int, int, int) -> matriz Recebe uma matriz M, um inteiro ímpar k e uma posição e um posição (i,j) da matriz e retorna a submatriz quadrada de dimensão k centrada em (i,j). Pré-condicão: a função supõe que k//2 <= i < len(m) - k//2 k//2 <= j < len(m) - k//2 submatriz que será retornada submatriz = [] a submatriz é centrada em [i][j] tem "raio" é k//2 canto superior direito da submatriz inicio_lin = i - raio inicio_col = j - raio canto inferior esquerdo da submatriz fim_lin = i + raio + 1 fim_col = j + raio + 1 percorra a submatriz a ser clonada for ii in range(inicio_lin,fim_lin): cria a linha ii-raio da submatriz linha = [] lista vazia for jj in range(inicio_col,fim_col): linha.append(m[ii][jj]) submatriz.append(linha) return submatriz 2: (matriz, int, int, int) -> matriz Recebe uma matriz M, um inteiro ímpar k e uma posição e um posição (i,j) da matriz e retorna a submatriz quadrada de dimensão k centrada em (i,j). Pré-condicão: a função supõe que k//2 <= i < len(m) - k//2 k//2 <= j < len(m) - k//2 submatriz que será retornada submatriz = [] a submatriz é centrada em [i][j] e tem "raio" é k//2 percorra a submatriz a ser clonada for ii in range(i-raio, i+raio+1): cria a linha ii-raio da submatriz submatriz.append([]) lista vazia for jj in range(j-raio, j+raio+1): submatriz[ii-raio].append(m[ii][jj]) return submatriz 3: Versão "pythoniana" (matriz, int, int, int) -> matriz Recebe uma matriz M, um inteiro ímpar k e uma posição e um posição (i,j) da matriz e retorna a submatriz quadrada de dimensão k centrada em (i,j). Pré-condicão: a função supõe que k//2 <= i < n - k//2 k//2 <= j < n - k//2 a submatriz é centrada em [i][j] e tem "raio" é k//2 return [ M[x][j-raio:j+raio+1] for x in range(i-raio, i+raio+1) ]

7 item (c) Escreva um programa que lê uma matriz M de inteiros, um inteiro positivo ímpar k, e imprime o número de submatrizes k k de M que são simétricas em relação à sua coluna central. Para fazer este item, você pode supor que é dada uma função def le_matriz(): que lê e devolve uma matriz, e pode usá-la sem escrevê-la. Além disso, use as funções dos itens anteriores, mesmo que você não as tenha feito. Exemplo: A matriz 5 4 abaixo (à esquerda) contém duas submatrizes 3 3 simétricas em relação a sua coluna central (as duas abaixo à direita) M = : def main(): '' Programa que lê uma matriz M e um número inteiro ímpar k e imprime o numero de submatrizes k x k de M que são simétricas em relação à coluna central. Pré-condição: o programa supõe que k é menor um igual ao número de linhas e colunas de M, ou seja k <= min(len(m), len(m[0]). leia a matriz e dimensão das submatrizes M = le_matriz() k = int(input("digite um número ímpar: ")) contador de submatrizes simétricas cont = 0 número de linhas e colunas da matriz n_lin = len(m) n_col = len(m[0]) a submatriz é centrada em [i][j] e tem "raio" é k//2 percorra todos os possíveis centros de submatriz de dimensão k for i in range(raio, n_lin - raio): for j in range(raio, n_col - raio): recorta submatriz de dimensao k centrada em [i][j] R = recorte(m,k,i,j) verifique se submatriz é simétrica if simetrica(r): cont = cont + 1 print("há %d submatrizes simétricas de tamanho %d x %d"%(cont,k,k)) 2: Versão "pythoniana". def main(): '' Programa que lê uma matriz M e um número inteiro ímpar k e imprime o numero de submatrizes k x k de M que são simétricas em relação à coluna central. Pré-condição: o programa supõe que k é menor um igual ao número de linhas e colunas de M, ou seja k <= min(len(m), len(m[0]). leia a matriz e dimensão das submatrizes M = le_matriz() k = int(input("digite um número ímpar: ")) print("há %d submatrizes simétricas de tamanho %d x %d" \ %(conta_simetricas(m,k),k,k)) def conta_simetricas(m, k): """ (matriz, int) -> int Recebe uma matriz M e um número inteiro k e retorna o número de submatrizes quadradas de dimensão k da matriz que são simétricas em relação à coluna central. """ submatrizes centradas em [i][j] e com "raio" é k//2 return sum(map( simetrica, \ (recorta(m, k, i, j) for j in range(raio, len(m[0])-raio) \ for i in range(raio, len(m)-raio)) )) Last modified: Wed Jun 18 11:35:44 BRT 2014

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2 INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2 *Exercícios de provas anteriores escolhidos para você estar preparado para qualquer questão na prova. Resoluções em simplificaaulas.com. Listas(= tipo

Leia mais

Python. Resumo e Exercícios P2 Parte 1

Python. Resumo e Exercícios P2 Parte 1 Python Resumo e Exercícios P2 Parte 1 Resuminho Teórico Listas Estrutura sequencial indexada. lista = [] # Lista vazia => [] lista.append(3) # Adiciona o numero 3 a lista => [3] lista.append(10) # Adiciona

Leia mais

MAC2166 Introdução à Computação

MAC2166 Introdução à Computação Departamento de Ciência da Computação IME USP MAC2166 Introdução à Computação Escola Politécnica Primeiro Semestre de 2015 Prova Substitutiva QUESTÃO 1 Esta questão consiste na implementação de duas funções

Leia mais

MAC2166 Introdução à Computação

MAC2166 Introdução à Computação Departamento de Ciência da Computação - IME - USP MAC2166 Introdução à Computação Escola Politécnica - Primeiro Semestre de 2016 Prova 1 QUESTÃO 1 Sejam a, b e c números inteiros tais que a b c > 0. Sabe-se

Leia mais

MAC2166 Introdução à Computação

MAC2166 Introdução à Computação MAC2166 Introdução à Computação Escola Politécnica Primeiro Semestre de 2015 Prova 3 Departamento de Ciência da Computação IME USP QUESTÃO 1 Nesta questão considere expressões na forma posfixa como no

Leia mais

DURAÇÃO DA PROVA: 2 horas

DURAÇÃO DA PROVA: 2 horas MAC2166 Introdução à Computação Grande áreas Civil, Mecânica, Petróleo e Química Escola Politécnica Segunda Prova 10 de maio de 2016 Nome: Assinatura: N ō USP: Turma: Professor: Instruções: 1. Não destaque

Leia mais

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Algoritmos e Estrutura de Dados Aula 02 Listas em Python Algoritmos e Estrutura de Dados Aula 02 Listas em Python Profa. Alana Oliveira e Prof. Davi Viana [email protected] e [email protected] Se não entender, pergunte! 2 1 Dados e Tipos de Dados Um dado

Leia mais

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25

Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 25 Computação 1 - Python Aula 12 - Teórica: Interação com o usuário e programa principal 1/ 25 print: Usado para imprimir informações na tela. >>> print "Qual o seu nome?" Qual o seu nome? # Função que soma

Leia mais

Computação 1 - Python Aula 11 - Teórica. programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 29

Computação 1 - Python Aula 11 - Teórica. programa principal. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 29 Computação 1 - Python Aula 11 - Teórica Interação com o usuário e programa principal 1/ 29 print: Usado para imprimir informações na tela. >>> print "Qual o seu nome?" Qual o seu nome? # Função que soma

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo

Leia mais

1 O filtro da mediana

1 O filtro da mediana CCM0118 Computação I Departamento de Ciência da Computação IME-USP Curso de Ciências Moleculares Turma 22 Segundo Semestre de 2012 Quarto Exercício-Programa Prazo de entrega: até 4 de dezembro de 2012.

Leia mais

Fundamentos da Programação

Fundamentos da Programação Fundamentos da Programação Solução da Repescagem do Primeiro Teste 31 de Janeiro de 2013 09:00 10:30 1. De um modo sucinto, (a) (0.5) Diga o que é um processo computacional. Um processo computacional é

Leia mais

Matrizes. Vanessa Braganholo

Matrizes. Vanessa Braganholo Matrizes Vanessa Braganholo [email protected] Matrizes } Variável composta multidimensional } É equivalente a um vetor, contudo permite a utilização de diversas dimensões acessadas via diferentes índices

Leia mais

if not(isinstance(a, int)) or a < 0: raise ValueError ("misterio: arg nao e inteiro nao negativo") else: return misterio_aux(a, a + 1)

if not(isinstance(a, int)) or a < 0: raise ValueError (misterio: arg nao e inteiro nao negativo) else: return misterio_aux(a, a + 1) Capítulo 7 Recursão e iteração 1. (1) Considere a seguinte função: def misterio(a): def misterio_aux(b, c): if b == 0: return True elif c == 0: return False return misterio_aux(b -, c - ) if not(isinstance(a,

Leia mais

1 O filtro da mediana

1 O filtro da mediana Departamento de Ciência da Computação IME-USP MAC0115 Introdução à Computação para Ciências Exatas e Tecnologia Instituto de Física Turma 21 Segundo Semestre de 2008 Quarto Exercício-Programa Prazo de

Leia mais

Métodos Computacionais em Física

Métodos Computacionais em Física Métodos Computacionais em Física Tatiana G. Rappoport [email protected] 214-2 Variáveis indexadas (arrays) Diversos problemas requerem o uso de vetores ou matrizes: Um conjunto de dados do mesmo tipo

Leia mais

Introdução à Computação - aulas 13 e 14-

Introdução à Computação - aulas 13 e 14- MAC2166 Introdução à Computação - aulas 13 e 14- Mauro Cesar Bernardes 29/Abril/2014 Agenda Strings Manipulação de Arquivos Matrizes... Strings Strings Uma string é uma sequencia de caracteres Utiliza

Leia mais

Introdução à Computação - aulas 01 e 02 -

Introdução à Computação - aulas 01 e 02 - MAC2166 Introdução à Computação - aulas 01 e 02 - Mauro Cesar Bernardes 25/Fevereiro/2014 Agenda Instalação do Python Python Shell Variáveis Operadores relacionais Operadores numéricos Comando de saída

Leia mais

LISTA DE EXERCÍCIOS 2

LISTA DE EXERCÍCIOS 2 UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO DE CIÊNCIA DA COMPUTAÇÃO PROGRAMAÇÃO DE COMPUTADORES 1. TIPOS COMPOSTOS DE DADOS LISTA DE EXERCÍCIOS 2 1. Considerando as declarações abaixo, responda dizendo

Leia mais

Python 3.x Estrutura de Repetição while

Python 3.x Estrutura de Repetição while Python 3.x Estrutura de Repetição while Introdução à Ciência da Computação Prof. Edison Ishikawa Sumário Atribuição Atualizando variáveis Iterações Revisitando o laço for Laço while Rastreando um programa

Leia mais

imprimir seus quadrados.

imprimir seus quadrados. 1) Dada uma seqüência de números inteiros não-nulos, seguida por 0, imprimir seus quadrados. int numero, /* usada para leitura da sequencia */ quadrado; /* guarda o quadrado do numero lido */ printf("\n\tcalculo

Leia mais

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006) Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Lista 2 Completa 2006.1 (Gerada em 8 de maio de 2006) 1. Considerando a estrutura struct Ponto { int x; int y; para representar um ponto

Leia mais

TCC 00308: Programação de Computadores I Matrizes

TCC 00308: Programação de Computadores I Matrizes TCC 00308: Programação de Computadores I 2017.1 Matrizes Matrizes Variável composta multidimensional É equivalente a um vetor, contudo permite a utilização de diversas dimensões acessadas via diferentes

Leia mais

1ª Lista de Exercícios

1ª Lista de Exercícios Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule

Leia mais

Estruturas de Repetição WHILE e DO- WHILE

Estruturas de Repetição WHILE e DO- WHILE Universidade Federal do Pampa UNIPAMPA Campus Itaqui RS Engenharia de Agrimensura Introdução à Programação (prof. Dr. Rogério Vargas) Lista 2 (entrega: 1 de junho de 2015) Instruções: Trabalhos iguais

Leia mais

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma

Leia mais

Prova 1 QUESTÃO 1. (1) nusp % 3 == 1. MAC2166 Introdução à Computação para a Engenharia. # include <stdio.h>

Prova 1 QUESTÃO 1. (1) nusp % 3 == 1. MAC2166 Introdução à Computação para a Engenharia. # include <stdio.h> MAC2166 Introdução à Computação para a Engenharia Prova 1 QUESTÃO 1 Simule a execução do programa abaixo, destacando a saída do programa. A saída do programa é tudo que resulta dos comandos printf. Para

Leia mais

char* prefixo (char* str, int n);

char* prefixo (char* str, int n); Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Segunda Lista de Exercícios 2005.1 1. Implemente uma função que receba uma string e um número inteiro n como parâmetros, e retorne uma

Leia mais

DURAÇÃO DA PROVA: 2 horas

DURAÇÃO DA PROVA: 2 horas MAC2166 Introdução à Computação Escola Politécnica Segunda Prova 19 de maio de 2015 Nome: Assinatura: N ō USP: Turma: Professor: Instruções: 1. Não destaque as folhas deste caderno. 2. A prova contém 4

Leia mais

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28 Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28 Tipos de Dados Dados Numéricos Números Inteiros: Int/Long Ponto Flutuante: Float Números Complexos: Complex

Leia mais

Lista 2 TP060. Exercícios Vetores

Lista 2 TP060. Exercícios Vetores Lista 2 TP060 Esta lista auxilia nos estudos da disciplina, porém é dever do aluno estudar além do que foi visto em sala de aula e procurar resolver exercícios que não estão em listas elaboradas pelo professor

Leia mais

Programação das Aulas

Programação das Aulas Departamento de Ciência da Computação - IME - USP Programação das Aulas Segunda parte Nesta segunda fase da disciplina estudaremos: variáveis do tipo real (float); caracteres (char); operações com números

Leia mais

1 Resumo: Matrizes. 2.1 Como declarar uma matriz IME/USP. Departamento de Ciência da Computação

1 Resumo: Matrizes. 2.1 Como declarar uma matriz IME/USP. Departamento de Ciência da Computação Departamento de Ciência da Computação MAC2166 Introdução a Computação IME/USP Matrizes 1 Resumo: Matrizes são estruturas bi-dimensionais utilizadas para armazenar dados de um mesmo tipo. Para declarar

Leia mais

UNIVERSIDADE FEDERAL DE ITAJUBÁ CANDIDATO: CURSO PRETENDIDO: SOLUÇÃO

UNIVERSIDADE FEDERAL DE ITAJUBÁ CANDIDATO: CURSO PRETENDIDO: SOLUÇÃO UNIVERSIDADE FEDERAL DE ITAJUBÁ GABARITO DE CÁLCULO PROVA DE TRANSFERÊNCIA INTERNA, EXTERNA E PARA PORTADOR DE DIPLOMA DE CURSO SUPERIOR - // CANDIDATO: CURSO PRETENDIDO: OBSERVAÇÕES: Prova SEM consulta

Leia mais

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1 Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação Lista de Exercícios 1 1. O programa seguinte tem vários erros em tempo de compilação. Encontre-os. Main() int a=1; b=2,

Leia mais

if not(isinstance(a, int)) or a < 0: raise ValueError ( misterio: arg devia ser inteiro nao negativo ) else: return misterio_aux(a, a + 1)

if not(isinstance(a, int)) or a < 0: raise ValueError ( misterio: arg devia ser inteiro nao negativo ) else: return misterio_aux(a, a + 1) Capítulo 7 Recursão e iteração 1. (1) Considere a seguinte função: def misterio(a): def misterio_aux(b, c): if b == 0: return True elif c == 0: return False return misterio_aux(b - 2, c - 2) if not(isinstance(a,

Leia mais

MCG126 Programação de Computadores II

MCG126 Programação de Computadores II MCG126 Programação de Computadores II Turmas: A e B Professor: Isac Mendes Lacerda (Material original cedido gentilmente pela professora Janaína Gomide) 1 Bibliografia 2 Bibliografia Introdução à Programação

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes [email protected] 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a

Leia mais

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias SCC 124 - Introdução à Programação para Engenharias Comandos Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes 1 Aula de

Leia mais

4ª Lista de Exercícios de Programação I

4ª Lista de Exercícios de Programação I 4ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. 1. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor e depois calcule a soma dos valores

Leia mais

4ª Lista de Exercícios de Programação I

4ª Lista de Exercícios de Programação I 4ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. 1. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor e depois calcule a soma dos valores

Leia mais

Laços de repetição for, while, do-while

Laços de repetição for, while, do-while Computação Eletrônica Laços de repetição for, while, do-while Prof: Luciano Barbosa Estruturas de Repetição Imagine um programa que calcula a média de um aluno. Este programa é bastante simples, bastaria:

Leia mais

GEQ Prof. Paulo R. Coelho. Lista para prova

GEQ Prof. Paulo R. Coelho. Lista para prova GEQ007 2013 Prof. Paulo R. Coelho Lista para prova 7. Defina uma estrutura empregado para armazenar nome, data de nascimento, idade e salário de um empregado de uma empresa. Leia informações sobre 10 empregados

Leia mais

INSTRUÇÕES DE REPETIÇÃO

INSTRUÇÕES DE REPETIÇÃO Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 6 INSTRUÇÕES DE REPETIÇÃO As instruções de repetição permitem fazer com que a execução de uma

Leia mais

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias SCC 12 - Introdução à Programação para Engenharias Tipos de Dados e Variáveis Professor: André C. P. L. F. de Carvalho, ICMC-USP Pos-doutorando: Isvani Frias-Blanco Monitor: Henrique Bonini de Britto Menezes

Leia mais

MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2003 Primeira Prova 2 de abril de 2003

MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2003 Primeira Prova 2 de abril de 2003 MAC 2166 Introdução à Computação para Engenharia Escola Politécnica Primeiro Semestre de 2003 Primeira Prova 2 de abril de 2003 Nome: Assinatura: N ō USP: Turma: Instruções: Professor: 1. Não destaque

Leia mais

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015

PRIMEIROS PASSOS COM PYTHON. Prof. Msc. Luis Filipe Alves Pereira 2015 PRIMEIROS PASSOS COM PYTHON Prof. Msc. Luis Filipe Alves Pereira 2015 PRIMEIROS PASSOS COM PYTHON 02/47 O QUE É PYTHON? Python é uma linguagem de propósito geral, de alto nível e interpretada Python será

Leia mais

Vetores. Introdução à Programação para Biologia Molecular

Vetores. Introdução à Programação para Biologia Molecular Vetores Introdução à Programação para Biologia Molecular Rosane Minghim Apoio na confecção: Danilo Medeiros Eler Rogério Eduardo Garcia Renato Rodrigues Carlos E. A. Zampieri Baseado na Apostila: Curso

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição Universidade Federal de Uberlândia Faculdade de Computação Estruturas de repetição Prof. Renato Pimentel 1 Estruturas de repetição Utilização: Trecho de um algoritmo precisa ser executado mais de uma vez:

Leia mais

Aula 06 Introdução à Programação Matrizes

Aula 06 Introdução à Programação Matrizes Aula 06 Introdução à Programação Matrizes Prof. Gustavo Callou [email protected] [email protected] Roteiro Matrizes Unidimensionais (Vetor) Bidimensionais String Exercícios Gustavo Callou DEINFO/UFRPE

Leia mais

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Lista de exercícios 6 Exercícios sobre repetição 1. Escreva um método que lê via teclado 8 números e retorna

Leia mais

Laboratório 3 Comandos de repetição while, do-while e for

Laboratório 3 Comandos de repetição while, do-while e for Laboratório 3 Comandos de repetição while, do-while e for Computação I (MAB-120) Prof. Silvana Rossetto 1 DCC/IM/UFRJ 29 de março de 2019 O objetivo desta aula de laboratório é praticar o uso dos comandos

Leia mais

Introdução à Computação

Introdução à Computação MAC2166 Introdução à Computação - aulas 11 e 12 - Mauro Cesar Bernardes 22/Abril/2014 Agenda Revisão da aula anterior Listas Comando For Matrizes Estruturando um programa com uma função main() #-----------------------------------------------

Leia mais

EP 2 - MAC 2166 Uma solução comentada

EP 2 - MAC 2166 Uma solução comentada EP 2 - MAC 2166 Uma solução comentada Este EP foi proposto originalmente para as turmas que usam Python. Na última página há o link p/ o download do código fonte deste EP na linguagem Python e também em

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2007/2008 Introdução à Programação em C 28/01/2008 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Descreva,

Leia mais

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz MAC122 rincípios de Desenvolvimento de Algoritmos Lista de exercícios 01 rof.: aulo Miranda Instituto de Matemática e Estatística (IME) Universidade de São aulo (US) Alocação Dinâmica & Matrizes Questão

Leia mais

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I Prof. Bruno E. G. Gomes Uma variável em um algoritmo pode ser vista como uma gaveta. A declaração de uma variável reserva uma gaveta (posição) de um certo

Leia mais

Processamento da Informação Teoria. Strings

Processamento da Informação Teoria. Strings Processamento da Informação Teoria Strings Semana 04 Prof. Jesús P. Mena-Chalco 15/05/2013 Das aulas anteriores... Vimos vários tipos de dados: int, float, long, string Stings são qualitativamente diferentes

Leia mais

LISTA DE EXERCÍCIOS - ro. 04

LISTA DE EXERCÍCIOS - ro. 04 USP ICMC SSC SSC0100 - Introdução à Ciência da Computação I (Prática) Professor responsável: Fernando Santos Osório Semestre: 2009/1 Horário: Terça 14h20 (Turma A2) E-mail: fosorio.at. icmc.usp.br fosorio.at.

Leia mais

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:

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: Computação e Programação (2009/2010-1º Semestre) 1º Teste MEMec - LEAN (11/11/2009) DURAÇÃO: 1h30m RESOLUÇÃO Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha,

Leia mais

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores). DCC-UFMG 1 semestre de 2007 DCC001 - Programação de Computadores Prof. Martín Gómez Ravetti Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores). Valor: 5 pontos 1. Escreva um algoritmo em

Leia mais

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho

CURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;

Leia mais

Fundamentos da Programação

Fundamentos da Programação Fundamentos da Programação Solução do Primeiro Teste 27 de Outubro de 2012 09:00 10:30 1. (1.0) O que é um processo computacional? Qual a relação entre um programa e um processo computacional? Um processo

Leia mais

Funções. Capítulo (2) Considere a seguinte interacção em Python: >>> def f1(x):... return x * x... >>> f1(5) 25 >>> f2 = f1 >>>

Funções. Capítulo (2) Considere a seguinte interacção em Python: >>> def f1(x):... return x * x... >>> f1(5) 25 >>> f2 = f1 >>> Capítulo 3 Funções 1. (2) Considere a seguinte interacção em Python: def f1(x): return x * x f1(5) 25 f2 = f1 (a) Qual o valor retornado pela chamada f2(5)? Justifique a sua resposta. (b) Suponha que agora

Leia mais

1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos]

1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos] * Universidade Federal do ABC Avaliação: Prova 01 (40 pontos) Disciplina: MCTA028 - Programação Estruturada Turma: Noturno A1 e A2 Professor: Jesús P. Mena-Chalco Data: 25/10/2016 Nome completo: RA: Instruções:

Leia mais

SCC0124 Introdução à Programação para Engenharias

SCC0124 Introdução à Programação para Engenharias SCC0124 Introdução à Programação para Engenharias 1. Escreva uma função ehpar(n) que recebe um número inteiro n e retorna se ele é par ou ímpar. Observação: a função não deve imprimir nada na tela, apenas

Leia mais

Lista 02: Pilhas & Filas

Lista 02: Pilhas & Filas MAC122 Princípios de Desenvolvimento de Algoritmos DCC IME USP 2º Semestre de 2018 Prof.: Dr. Paulo Miranda [email protected] Lista 02: Pilhas & Filas Para as questões envolvendo pilhas, assuma

Leia mais

*Exercícios de provas anteriores escolhidos para você estar preparado para qualquer questão na prova. Resoluções em simplificaaulas.

*Exercícios de provas anteriores escolhidos para você estar preparado para qualquer questão na prova. Resoluções em simplificaaulas. INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P1 *Exercícios de provas anteriores escolhidos para você estar preparado para qualquer questão na prova. Resoluções em simplificaaulas.com Conceitos fundamentais

Leia mais