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

Documentos relacionados
double x; x = enigmab1(100);

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

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

MCTA028 Programação Estruturada Aula 03: - Funções e procedimentos - Vetores e matrizes

MCTA028 Programação Estruturada Aula 03: - Funções e procedimentos - Vetores e matrizes

Aula 05: - Recursão (parte 1)

Aula 05: - Recursão (parte 1)

MCTA001 Algoritmos e Estruturas de Dados I Apresentação e exercícios básicos

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.

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

DURAÇÃO DA PROVA: 2 horas

MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação

Prova 2 - Computação

UNIVERSIDADE DA BEIRA INTERIOR

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

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação

Processamento da Informação Teoria. Recursividade

Vetores e matrizes. MCTA028 Programação Estruturada. Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti

Apontadores/ponteiros

Aula 07: - Mapa de memória de um processo - Ponteiros (parte 1)

Aula 15: Repetição (Parte 3)

Linguagem de Programação I. Aula 08 Linguagem C: Arrays

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

ponteiros INF Programação I Prof. Roberto Azevedo

PROGRAMAÇÃO DE COMPUTADORES V - TCC Modulo 6 : Funções Escopo de Variáveis: Globais x Locais Aura - Erick

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

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

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.

Programação estruturada

MCTA028 Programação Estruturada Aula 09: - Ponteiros (parte 2)

INF 1005 Programação I

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

7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)

Funções em Linguagem C Parte II

ESTRUTURA DE DADOS (TCC )

Programação: Vetores

Aula 14: Repetição (Parte 2)

MAC2166 Introdução à Computação para Engenharia Escola Politécnica Terceira Prova 20 de junho de 2011

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

LINGUAGEM C: ARRAY: VETORES E MATRIZES

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

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

3. Linguagem de Programação C

Processamento da Informação Teoria. Laços

Aula 16: Laços aninhados e desvios

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

1. Escreva um programa que imprima a ordem reversa de caracteres de uma string digitada pelo usuário. Ex: Entrada: Hello World. Saída:.

Paradigmas de programação

1ª Lista de Exercícios

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

Introdução à Programação

Fundamentos de programação

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

INF 1007 Programação II

LP II Estrutura de Dados

INF 1620 P1-04/10/03 Questão 1 Nome:

Ponteiros e Alocação de Memória

Introdução a Programação de Jogos

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

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

MC-102 Aula 21 Registros

Linguagem C: funções e ponteiros. Prof. Críston Algoritmos e Programação

Programação de Computadores II. Cap. 4 Funções

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Funções Vetores Matrizes

INF 1007 Programação II

Recursão David Déharbe

MCTA001 Algoritmos e Estruturas de Dados I. Aula 08 Árvores (parte 1) Laboratório

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

Controle de Fluxo Utilizando C

Recursão. Aula 1. Liana Duenha. Faculdade de Computação Universidade Federal de Mato Grosso do Sul

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

UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO

Introdução à Programação

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

- Mapa de memória de um processo - Ponteiros

UNIVERSIDADE DA BEIRA INTERIOR

MAC 2166 Introdução à Computação para Engenharia

UNIVERSIDADE DA BEIRA INTERIOR

Matrizes. DCC 119 Algoritmos

Arranjos de arranjos, matrizes.

Programação Estruturada Prof. Rodrigo Hausen Agregados de Dados Heterogêneos (structs)

# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira

Fundamentos de Programação 1

Aula 4 ESTRUTURAS DE REPETIÇÃO (FOR)

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

Linguagens de Programação I

11a. Aula Ponteiros e Vetores

SCC Algoritmos e Estruturas de Dados I

Módulo 3 Controle de Fluxo

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional

Estrutura de dados 2. Ponteiro. Prof. Jesuliana N. Ulysses

EXERCÍCIO DE SONDAGEM TURMA 01 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

BC1424 Algoritmos e Estruturas de Dados I Aula 03: Recursão / Recursividade

Processamento da Informação Teoria. Listas e Matrizes

Transcrição:

* 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: A prova tem a duração de 1h50min. É proibido o uso de qualquer aparelho ou recurso de processamento e/ou comunicação. Utilize a linguagem C para todas as questões (não utilize pseudocódigo). 1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos] int funcao1a(int n){ if (n == 0 n == 1) return 1; return 2 * n * funcao1a(n 1); Para n=4, a função devolve o inteiro: a) 24 b) 44 c) 96 d) 192 e) 384 int funcao2a(int x, int y){ return x 10.5 * y; int funcao3a(int x, int y){ if (x>y) return 10; return 20; return 30; int funcao4(int n){ return n/3*5/2 n; int funcao5(int n){ int i, soma=0; for (i=0; i<n; i+=2) soma += i; return i; #include <stdio.h> void main() { int a = 100; int b = 33; int *c = &a; a = b *c; printf("%d %d %d\n", a, b, *c); Para x=1 e y=2, a função devolve o inteiro: a) -18 b) -19 c) -20 d) -21 e) -22 Para x=10 e y=10, a função devolve o inteiro: a) 10 b) 20 c) 30 d) 20, 30 e) 10, 20, 30 Para n=8, a função devolve o inteiro: a) -2 b) -3 c) -6 d) -7 e) -8 Para n=7, a função devolve o inteiro: a) 6 b) 8 c) 10 d) 12 e) 20 O programa ao lado imprime: a) %d %d %d b) 100 33 100 c) -67 33-67 d) 100 33 *100 e) -67 33 *-67

* 2. A seguinte função devolve um número aleatório inteiro [3 pontos] int gerarnumero() { srand(time(null)); return rand(); Crie uma função que permita gerar um número aleatório entre a e b, isto é, gerar um número inteiro aleatório no intervalo [a, b] int gerarnumeronointervalo(int a, int b) { srand(time(null)); return rand()%(b a+1) + a; 3. Crie uma versão iterativa da seguinte função. Considere n sempre maior ou igual a zero. [5 pontos] int funcaor1(int n) { if (n==0) { if (n%2==0) return n + funcaor1(n 1); return funcaor1(n 1); int funcaoiterativa (int n) { int i, soma=0; for (i=0; i<=n; i+=2) soma += i; return soma;

* 4. Crie uma função que permita verificar se dois vetores, v[0..n-1] e w[0..m-1] de números inteiros são iguais. Sua função deverá devolver 1 se ambos os vetores forem iguais, caso contrário deve devolver 0. Use somente ponteiros. Não use colchetes, isto é, não use [ ou ]. [5 pontos] int vetoresiguais (int *v, int n, int *w, int m) { int i=0; while ( i<n && i<m && *(v+i)==*(w+i) ) i++; if (i==n && i==m) return 1; 5. O primorial de um número inteiro positivo n é o produto de todos os primos menoes ou iguais a n. Crie uma função recursiva que, dado um número inteiro positivo, devolda o seu Primorial [5 pontos] long int primorial (int n) // Desafio dado em aula

* 6. O número de Euler pode ser calculado pela somatoria de infinitos termos como: A função euler1 permite calcular o valor de e somando termos maiores ou iguais do que um epsilon (valor muito pequeno, por exemplo, 0.0000001). Crie uma versão recursiva da função iterativa euler1. [5 pontos] Observação: Se sua função recursiva precisar de mais de um parâmetro deverá indicar seus valores considerados na chamada a função. double euler1(double epsilon) { double e=0; int i, d=1; for (i=1; 1.0/d>epsilon; i++) { e += 1.0/d; d *= i; return e; double eulerrec(double epsilon, int i, int d) { if (1.0/d>epsilon) return 1.0/d + eulerrec(epsilon, i+1, d*i); double euler2(double epsilon){ return eulerrec(epsilon, 1, 1); 7. O elemento minimax de uma matriz bidimensional é o menor elemento da linha que contém o maior elemento de uma matriz. Crie uma função para encontrar o elemento minimax de uma matriz M de números inteiros com n linhas e m colunas. [5 pontos] int minimax (int n, int m, int M[n][m]) { int i, j, menor; int maior = M[0][0]; int imaior; for (i=0; i<n; i++) for (j=0; j<m; j++) if (maior < M[i][j]) { maior = M[i][j]; imaior = i; menor = maior; for (j=0; j<m; j++) if (menor > M[imaior][j]) menor = M[imaior][j]; return menor;

** 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: A prova tem a duração de 1h50min. É proibido o uso de qualquer aparelho ou recurso de processamento e/ou comunicação. Utilize a linguagem C para todas as questões (não utilize pseudocódigo). 1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos] int funcao1b(int n){ if (n == 0 n == 1) return 1; return 2 * n * funcao1a(n 1); Para n=3, a função devolve o inteiro: a) 4 b) 24 c) 44 d) 96 e) 192 int funcao2b(int x, int y){ return x 10.5 * y; int funcao3b(int x, int y){ if (x<y) return 10; return 20; return 30; int funcao4(int n){ return n/3*5/2 n; int funcao5(int n){ int i, soma=0; for (i=0; i<n; i+=2) soma += i; return i; Para x=3 e y=2, a função devolve o inteiro: a) -14 b) -15 c) -16 d) -17 e) -18 Para x=30 e y=30, a função devolve o inteiro: a) 10 b) 20 c) 30 d) 20, 30 e) 10, 20, 30 Para n=7, a função devolve o inteiro: a) -2 b) -3 c) -6 d) -7 e) -8 Para n=9, a função devolve o inteiro: a) 6 b) 8 c) 10 d) 12 e) 20 #include <stdio.h> void main() { double a = 10.5; double b = 3.3; double *c = &a; a = 2 * a; printf("%.1f %.1f %.1f\n", a, b, 2.0*(*c)); O programa ao lado imprime: a) %.1f %.1f %.1f b) 10 3 2.0*10 c) 10.5 3.3 10.5 d) 21.0 3.3 42.0 e) 10.5 3.3 21.0

** 2. O número de Euler pode ser calculado pela somatoria de infinitos termos como: A função euler1 permite calcular o valor de e somando termos maiores ou iguais do que um epsilon (valor muito pequeno, por exemplo, 0.0000001). Crie uma versão recursiva da função iterativa euler1. [5 pontos] Observação: Se sua função recursiva precisar de mais de um parâmetro deverá indicar seus valores considerados na chamada a função. double euler1(double epsilon) { double e=0; int i, d=1; for (i=1; 1.0/d>epsilon; i++) { e += 1.0/d; d *= i; return e; double eulerrec(double epsilon, int i, int d) { if (1.0/d>epsilon) return 1.0/d + eulerrec(epsilon, i+1, d*i); double euler2(double epsilon){ return eulerrec(epsilon, 1, 1); 3. A seguinte função devolve um número aleatório inteiro [3 pontos] int gerarnumero() { srand(time(null)); return rand(); Crie uma função que permita gerar um número aleatório entre a e b, isto é, gerar um número inteiro aleatório no intervalo [a, b] int gerarnumeronointervalo(int a, int b) { srand(time(null)); return rand()%(b a+1) + a;

** 4. Crie uma versão iterativa da seguinte função. Considere n sempre maior ou igual a zero. [5 pontos] int funcaor2(int n) { if (n==0) { if (n%2==1) return n + funcaor2(n 1); return funcaor2(n 1); int funcaoiterativa (int n) { int i, soma=0; for (i=1; i<=n; i+=2) soma += i; return soma; 5. Crie uma função que permita verificar se dois vetores, v[0..n-1] e w[0..m-1] de números inteiros são iguais. Sua função deverá devolver 1 se ambos os vetores forem iguais, caso contrário deve devolver 0. Use somente ponteiros. Não use colchetes, isto é, não use [ ou ]. [5 pontos] int vetoresiguais (int *v, int n, int *w, int m) { int i=0; while ( i<n && i<m && *(v+i)==*(w+i) ) i++; if (i==n && i==m) return 1;

** 6. O primorial de um número inteiro positivo n é o produto de todos os primos menoes ou iguais a n. Crie uma função recursiva que, dado um número inteiro positivo, devolda o seu Primorial [5 pontos] long int primorial (int n) // Desafio dado em aula 7. O elemento minimax de uma matriz bidimensional é o menor elemento da coluna que contém o maior elemento de uma matriz. Crie uma função para encontrar o elemento minimax de uma matriz M de números inteiros com n linhas e m colunas. [5 pontos] int minimax (int n, int m, int M[n][m]) // Similar à solução da prova A (deve-se identificar o menor valor da coluna!)