double x; x = enigmab1(100);

Documentos relacionados
Universidade Federal do ABC Disciplina: Processamento da Informação Avaliação: Prova 02 Professor: Jesús P. Mena-Chalco Data: 22/04/2015

Questão 1 (6 pontos): Para cada função selecione uma opção (Resposta correta +1.5, incorreta -0.5). (a) A função devolve o inteiro 0.

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

Processamento da Informação Estruturas de seleção simples e composta

1. Se v é um vetor, qual a diferença conceitual entre as expressões v[70] e v+70? [2 ponto]

(a) Indique, em português, o que realiza a seguinte função. [4 pontos]

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 05 de abril de 2010

Universidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec

Seleção Múltipla Laços (while, do-while, for) AULA 05

Processamento da Informação Exercícios de programação

CCM0118 Computação I Curso de Ciências Moleculares Turma 22 Segundo Semestre de 2012 Segunda Prova 25 de outubro de 2012

Processamento da Informação Teoria. Laços aninhados

Computação 1 - Python Aula 7 - Teórica: Estrutura de Repetição com teste de parada: while 1/ 23

Processamento da Informação Teoria. Listas e Matrizes

Instituto de Física Segundo Semestre de Diurno. Prova Substitutiva 15/12/2000

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Estruturas de Repetição

Paradigmas de programação

Vetores Unimensionais

Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP

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

Processamento da Informação Teoria. Laços

Vetores Unimensionais

Estruturas de seleção. Prof.: Jesus

Linguagem C ESTRUTURA DE CONTROLE

Recursividade. Prof. Jesus José de Oliveira Neto

Computação 1 - Python Aula 7 - Teórica Estrutura de Repetição com Teste de Parada: while. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

d) Defina uma função que copia (replica) um vector de inteiros, tendo o novo vector um tamanho dado como argumento.

Variáveis Compostas. Vanessa Braganholo

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Estruturas de Decisão

Comando de Seleção em Java

Aula 05: Condicionais (Parte 2)

Processamento da Informação Teoria. Desvio Condicional

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.

Algoritmos II prof. Daniel Oliveira

MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017

Aula 6 Oficina de Programação Estruturas Condicionais no C. Profa. Elaine Faria UFU

Aula 5 ESTRUTURAS DE REPETIÇÃO (WHILE)

Algoritmos e Programação

Aula 14: Repetição (Parte 2)

Fundamentos de programação

CMP Técnicas de Programação 2 a Lista de Exercícios - Passagem de parâmetros por referência e ponteiros Max Gontijo de Oliveira

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2014/2015

(Conceito de Variável Indexada, Funções e Procedimentos)

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

1 Da aula teórica ao Java

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Primeira Prova 07 de abril de 2008

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Sintaxe Básica de Java Parte 2

Vetores Unimensionais

Treinamento Olimpíada Brasileira de Informática

Programação científica C++

Prova 1 PMR2300 / PMR3201 1o. semestre 2015 Prof. Thiago Martins

Programação de Computadores II TCC

MAC121 ALGORITMOS E ESTRUTURAS DE DADOS I 2O. SEMESTRE DE 2017

Introdução à Programação. Estruturas de Repetição

Programação Estruturada e Orientada a Objetos

Variáveis Compostas. Leonardo Gresta Paulino Murta.

Prof. Rogério Rocha 1

UNIVERSIDADE DA BEIRA INTERIOR

Aula 18: Vetores Introdução a Programação Túlio Toffolo & Puca Huachi

Algoritmos I Aula 14 Java: estruturas de seleção e repetição

Lista de exercícios 1 (Cast)

Computação 2. Aula 2. Profª. Fabiany Vetores e Matrizes

INSTRUÇÕES DE REPETIÇÃO

Estruturas de seleção. Prof.: Jesus

ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO

Lista 2 TP060. Exercícios Vetores

SIN Exemplo de Prova do Conteúdo Semestral

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

EXERCICIO DE JAVA PARA FIXAÇÃO DE CONTEÚDO - Introdução a Prática de Programação Docente Pedro F. Carvalho /

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

Técnicas de Programação

Universidade Federal de Goiás Instituto de Informática 1ª Prova de Introdução a Programação 06/04/11

Aula 15: Repetição (Parte 3)

Fábio da Fontoura Beltrão Felipe Augusto Chies Lucas Fialho Zawacki Marcos Vinicius Cavinato Matheus de Carvalho Proença

Manual de conversão de Pseudo-algoritmo para Java

Algoritmos e Técnicas de

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Prova de Recuperação PMR3201/PMR2300 1o. semestre 2015 Prof. Thiago Martins

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

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Questão 1 Analise o trecho do código abaixo, escrito na linguagem C#:

Universidade Federal de Goiás Instituto de Informática Introdução à Computação Professor: Julliano Rosa Nascimento

Universidade Federal do ABC BCM Processamento da Informação Prática Simulado 1 Primeiro Quadrimestre de 2018

Operadores e Estruturas de Decisão. Vanessa Braganholo

Programação Estruturada Prof. Rodrigo Hausen Condicionais e Laços

Universidade Federal do ABC BCM Processamento da Informação Prática Prova Substitutiva Primeiro Quadrimestre de 2018

Aula 7 Modularização. Processamento da Informação. Universidade Federal do ABC

Aula 8 Comandos de Seleção

Processamento da Informação Teoria. Strings

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

System.out.print("e"); O programa acima irá imprimir: "b". O programa acima irá imprimir: "bd". O programa acima irá imprimir: "e".

Linguagem de Programação II Implementação

: 25/10/2005. (marque com um "X"): Custódio Dirceu Marcus Vinícius ! "# $ %&'( )* +, -)./#01 +& (, * ( &% #

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

Estruturas de Repetição e String. Vanessa Braganholo

Transcrição:

8h Universidade Federal do ABC Avaliação: Prova 02 Disciplina: Processamento da Informação Turmas: A4, A5 (8hs) Professor: Jesús P. Mena-Chalco Data: 05/05/2016 Nome: RA: Instruções para a prova (leia antes de começar): 1) A prova tem a duração de 1h50min. 2) A prova é individual e sem consultas. 3) Pontuação total: 40 pontos + bônus de 4 pontos. Questão 1 (6 pontos, 3 pontos cada) Escreva o intervalo de números aleatórios que a seguinte instrução permitirá gerar: (int)(math.random()*100)%5 + 1 Escreva o valor da variável d, após a execução das seguintes instruções: int i, d=0; for (i=10; i>=0; i=i d) { d = i d; Questão 2 (8 pontos, 4 pontos cada) Para cada método indique o valor ou o conteúdo da variável x. static int f1 ( int x ) { if (x<0) { return 1*x; return x; int x; int v[] = {1,2,3, 4, 5, 6; x = enigmaa1(v) ; static int f2 ( int x, int y ) { return f1(x)+f1(y); static int enigmaa1 ( int v[] ) { int i, soma=0; for(i=0; i<v.length; i=i+2) { soma = soma + f2(v[i], v[i+1]); return soma; static double enigmab1 ( int n ) { int i; double resposta = 0; for (i=0; i<n; i=i+1) { resposta = 1.0/((i+1)*(i+1)); return 1+resposta; double x; x = enigmab1(100);

8h Questão 3 (8 pontos) Indique o valor que devolverá o seguinte método. Considere como parâmetro de entrada, para o método, o seu número de matricula (isto é, seu RA composto de 8 dígitos). static int funcaora ( int ra ) { int i=0, m1, m2; int v[] = new int[8]; while (ra>0) { v[i] = (ra%10)+i; ra = ra/10; i = i+1; if (v[0]>v[1]) { m1 = v[0]; m2 = v[1]; else { m2 = v[0]; m1 = v[1]; for (i=2; i<8; i=i+2) { if (v[i]>v[i+1]) { if (v[i]>m1) { m1 = v[i]; if (v[i+1]<m2) { m2 = v[i+1]; else { if (v[i]<m2) { m2 = v[i]; if (v[i+1]>m1) { m1 = v[i+1]; return m1 m2; RA = v = m1 = m2 = Resposta:...

8h Questão 4 (6 pontos) O seguinte método promete, dado um nome completo, devolver o primeiro nome. Suponha que o nome dado como entrada está bem formatado, por exemplo "Joao Carlos Costa da Silva". O algoritmo está correto? Justifique. Se não estiver correto, apresente a correção da(s) linha(s) incorreta(s). 1. static String primeironome ( String nome ) { 2. int i; 3. String resposta = ""; 4. for (i=0; i<nome.length() && nome.charat(i)!=' '; i=i+1) { 5. resposta = nome.charat(i) + resposta; 6. 7. return resposta; 8.

8h Questão 5 (4 pontos) Faça um método que imprima os elementos de uma matriz quadrada, de números inteiros, seguindo a ordem da somatória de seus índices, isto é, seguindo a diagonal secundária. Tente construir um programa o mais eficiente possível. Tente percorrer a matriz apenas uma única vez. Limitação: Use no máximo 2 laços (pode usar várias condicionais). Assinatura: static void imprimirelementos ( int M[][] ) Exemplo: Entrada Saída 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 5 3 6 9 4 7 10 13 8 11 14 12 15 16

8h Questão 6 (8 pontos) Faça um método que imprima os elementos pares da diagonal principal e secundaria. Assuma que a matriz, de números inteiros, dada como entrada sempre será quadrada. Limitação: Use no máximo 1 laço (pode usar várias condicionais). Assinatura: static void imprimirparesdiagonais ( int M[][] ) Exemplo: Entrada Saída 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 6 16 4 10

8h Questão BÔNUS (4 pontos) Considere o seguinte método recursivo: 1. static boolean frec ( int v[], int i ) { 2. if (i==v.length 1) { 3. return true; 4. 5. else { 6. if (v[i]>v[i+1]) { 7. return false; 8. 9. else { 10. return frec(v, i+1); 11. 12. 13. Observação: O valor inicial da variável i é zero (0). Exemplo de chamado: int v[] = {1,2,3,4,5,6,7,8; boolean r = frec(v, 0); (a) Indique em português, de forma concisa, o que realiza o método. (b) Indique o número máximo de, dado um vetor qualquer, a linha 6 ser executada. (c) O algoritmo é eficiente? Justifique.

14h Universidade Federal do ABC Avaliação: Prova 02 Disciplina: Processamento da Informação Turmas: C1, C2, C3 (14hs) Professor: Jesús P. Mena-Chalco Data: 05/05/2016 Nome: RA: Instruções para a prova (leia antes de começar): 1) A prova tem a duração de 1h50min. 2) A prova é individual e sem consultas. 3) Pontuação total: 40 pontos + bônus de 4 pontos. Questão 1 (6 pontos, 3 pontos cada) Escreva o intervalo de números aleatórios que a seguinte instrução permitirá gerar: (int)(math.random()*100)%6 + 1 Escreva o valor da variável d, após a execução das seguintes instruções: int i, d=0; for (i=20; i>=0; i=i d) { d = i d; Questão 2 (8 pontos, 4 pontos cada) Para cada método indique o valor ou o conteúdo da variável x. static int f1 ( int x ) { if (x<0) { return 1*x; return x; int x; int v[] = {1,2,3, 4, 5, 6; x = enigmaa2(v) ; static int f2 ( int x, int y ) { return f1(x)+f1(y); static int enigmaa2 ( int v[] ) { int i, soma=0; for(i=v.length; i>0; i=i 2) { soma = soma + f2(v[i 1], v[i 2]); return soma; static double enigmab2 ( int n ) { int i; double resposta = 0; for (i=1; i<=n; i=i+1) { resposta = (1.0/i)*(1.0/i); return 1+resposta; double x; x = enigmab2(100);

14h Questão 3 (8 pontos) Indique o valor que devolverá o seguinte método. Considere como parâmetro de entrada, para o método, o seu número de matricula (isto é, seu RA composto de 8 dígitos). static int funcaora ( int ra ) { int i=0, m1, m2; int v[] = new int[8]; while (ra>0) { v[i] = (ra%10)+i; ra = ra/10; i = i+1; if (v[0]>v[1]) { m1 = v[0]; m2 = v[1]; else { m2 = v[0]; m1 = v[1]; for (i=2; i<8; i=i+2) { if (v[i]>v[i+1]) { if (v[i]>m1) { m1 = v[i]; if (v[i+1]<m2) { m2 = v[i+1]; else { if (v[i]<m2) { m2 = v[i]; if (v[i+1]>m1) { m1 = v[i+1]; return m1 m2; RA = v = m1 = m2 = Resposta:...

14h Questão 4 (6 pontos) O seguinte método promete, dado um nome completo, devolver o último nome. Suponha que o nome dado como entrada está bem formatado, por exemplo "Joao Carlos Costa da Silva". O algoritmo está correto? Justifique. Se não estiver correto, apresente a correção da(s) linha(s) incorreta(s). 1. static String ultimonome ( String nome ) { 2. int i; 3. String resposta = ""; 4. for (i=nome.length() 1; i>=0 && nome.charat(i)!=' '; i=i 1) { 5. resposta = resposta + nome.charat(i); 6. 7. return resposta; 8.

14h Questão 5 (4 pontos) Faça um método que imprima os elementos de uma matriz quadrada, de números inteiros, seguindo a ordem da somatória de seus índices, isto é, seguindo a diagonal secundária. Tente construir um programa o mais eficiente possível. Tente percorrer a matriz apenas uma única vez. Limitação: Use no máximo 2 laços (pode usar várias condicionais). Assinatura: static void imprimirelementos ( int M[][] ) Exemplo: Entrada Saída 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 5 3 6 9 4 7 10 13 8 11 14 12 15 16

14h Questão 6 (8 pontos) Faça um método que imprima os elementos ímpares da diagonal principal e secundaria. Assuma que a matriz, de números inteiros, dada como entrada sempre será quadrada. Limitação: Use no máximo 1 laço (pode usar várias condicionais). Assinatura: static void imprimirimparesdiagonais ( int M[][] ) Exemplo: Entrada Saída 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 11 7 13

14h Questão BÔNUS (4 pontos) Considere o seguinte método recursivo: 1. static boolean frec ( int v[], int i ) { 2. if (i==v.length 1) { 3. return true; 4. 5. else { 6. if (v[i]>=v[i+1]) { 7. return false; 8. 9. else { 10. return frec(v, i+1); 11. 12. 13. Observação: O valor inicial da variável i é zero (0). Exemplo de chamado: int v[] = {11,11,22,22,33,44,55,66; boolean r = frec(v, 0); (a) Indique em português, de forma concisa, o que realiza o método. (b) Indique o número máximo de, dado um vetor qualquer, a linha 6 ser executada. (c) O algoritmo é eficiente? Justifique.

19h Universidade Federal do ABC Avaliação: Prova 02 Disciplina: Processamento da Informação Turmas: A4, A5 (19hs) Professor: Jesús P. Mena-Chalco Data: 05/05/2016 Nome: RA: Instruções para a prova (leia antes de começar): 1) A prova tem a duração de 1h50min. 2) A prova é individual e sem consultas. 3) Pontuação total: 40 pontos + bônus de 4 pontos. Questão 1 (6 pontos, 3 pontos cada) Escreva o intervalo de números aleatórios que a seguinte instrução permitirá gerar: (int)(math.random()*100)%7 + 1 Escreva o valor da variável d, após a execução das seguintes instruções: int i, d=0; for (i=40; i>=0; i=i d) { d = i d; Questão 2 (8 pontos, 4 pontos cada) Para cada método indique o valor ou o conteúdo da variável x. static int f1 ( int x ) { if (x<0) { return 1*x; return x; int x; int v[] = {1,2,3, 4, 5, 6; x = enigmaa3(v) ; static int f2 ( int x, int y ) { return f1(x)+f1(y); static int enigmaa3 ( int v[] ) { int i, soma=0; for(i=v.length 1; i>0; i=i 2) { soma = soma + f2(v[i], v[i 1]); return soma; static double enigmab3 ( int n ) { int i; double resposta = 0; for (i=1; i<=n; i=i+2) { resposta = (1.0/i)*(1.0/i); return 1+resposta; double x; x = enigmab3(100);

19h Questão 3 (8 pontos) Indique o valor que devolverá o seguinte método. Considere como parâmetro de entrada, para o método, o seu número de matricula (isto é, seu RA composto de 8 dígitos). static int funcaora ( int ra ) { int i=0, m1, m2; int v[] = new int[8]; while (ra>0) { v[i] = (ra%10)+i; ra = ra/10; i = i+1; if (v[0]>v[1]) { m1 = v[0]; m2 = v[1]; else { m2 = v[0]; m1 = v[1]; for (i=2; i<8; i=i+2) { if (v[i]>v[i+1]) { if (v[i]>m1) { m1 = v[i]; if (v[i+1]<m2) { m2 = v[i+1]; else { if (v[i]<m2) { m2 = v[i]; if (v[i+1]>m1) { m1 = v[i+1]; return m1 m2; RA = v = m1 = m2 = Resposta:...

19h Questão 4 (6 pontos) O seguinte método promete, dado um nome completo, devolver o último nome. Suponha que o nome dado como entrada está bem formatado, por exemplo "Joao Carlos Costa da Silva". O algoritmo está correto? Justifique. Se não estiver correto, apresente a correção da(s) linha(s) incorreta(s). 1. static String ultimonomepessoa ( String nome ) { 2. int i; 3. String resposta = ""; 4. for (i=nome.length() 1; i>=0 && nome.charat(i)!=' '; i=i+1) { 5. resposta = resposta + nome.charat(i); 6. 7. return resposta; 8.

19h Questão 5 (4 pontos) Faça um método que imprima os elementos de uma matriz quadrada, de números inteiros, seguindo a ordem da somatória de seus índices, isto é, seguindo a diagonal secundária. Tente construir um programa o mais eficiente possível. Tente percorrer a matriz apenas uma única vez. Limitação: Use no máximo 2 laços (pode usar várias condicionais). Assinatura: static void imprimirelementos ( int M[][] ) Exemplo: Entrada Saída 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 2 5 3 6 9 4 7 10 13 8 11 14 12 15 16

19h Questão 6 (8 pontos) Faça um método que imprima os elementos múltiplos de 3 da diagonal principal e secundaria. Assuma que a matriz, de números inteiros, dada como entrada sempre será quadrada. Limitação: Use no máximo 1 laço (pode usar várias condicionais). Assinatura: static void imprimirmult3diagonais ( int M[][] ) Exemplo: Entrada Saída Entrada Saída 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 6 9 30 3 5 12 15 30 10 40 9 12 3 12 30

19h Questão BÔNUS (4 pontos) Considere o seguinte método recursivo: 1. static boolean frec ( int v[], int i ) { 2. if (i==v.length 1) { 3. return true; 4. 5. else { 6. if (v[i]>=v[i+1]) { 7. return false; 8. 9. else { 10. return frec(v, i+1); 11. 12. 13. Observação: O valor inicial da variável i é zero (0). Exemplo de chamado: int v[] = {11,11,22,22,33,44,55,66; boolean r = frec(v, 0); (a) Indique em português, de forma concisa, o que realiza o método. (b) Indique o número máximo de, dado um vetor qualquer, a linha 6 ser executada. (c) O algoritmo é eficiente? Justifique.